Slojno SQL zapitvane
4 отговора
223 прегледа
Slojno SQL zapitvane
Imam edin interesen vupros
predstavete si sql zapitvane ot roda na
$sql = "UPDATE set `tablica1`.`pole1` = `tablica1`.`pole1` + `tablica2`.`pole2` ....i t.n. i t.n........... WHERE `table2`.`pole2` = `table1`.`pole`, ........i t.n. i t.n.
Zna4i to4no kakvo e zapitvaneto ne e ot zna4enie
vuprosa mi e kakvi i kak trqbva da sa podredeni usloviqta sled WHERE za da se polu4i taka 4e na vsqko uslovie vsi4ki set-ove se izpulnqvat po vednuj
ako mejdu tqh se postavi AND 6te iska vsi4kite da sa izpulneni , ako e OR i edno mu stiga
no kak da go napravi da se izpulnqt za vsqko uslovie po vednuj vsi4ki set-ove gore
Doydoh nerazbran
Trugnah si nerazbran
Samo edin me razbra
i To pogre6no
predstavete si sql zapitvane ot roda na
$sql = "UPDATE set `tablica1`.`pole1` = `tablica1`.`pole1` + `tablica2`.`pole2` ....i t.n. i t.n........... WHERE `table2`.`pole2` = `table1`.`pole`, ........i t.n. i t.n.
Zna4i to4no kakvo e zapitvaneto ne e ot zna4enie
vuprosa mi e kakvi i kak trqbva da sa podredeni usloviqta sled WHERE za da se polu4i taka 4e na vsqko uslovie vsi4ki set-ove se izpulnqvat po vednuj
ako mejdu tqh se postavi AND 6te iska vsi4kite da sa izpulneni , ako e OR i edno mu stiga
no kak da go napravi da se izpulnqt za vsqko uslovie po vednuj vsi4ki set-ove gore
Doydoh nerazbran
Trugnah si nerazbran
Samo edin me razbra
i To pogre6no
Re: Slojno SQL zapitvane
Ami da ti kaja malko stranno iziskvane iskash, no syvsem sluchaino vcera popadnah na neshto takova. Znachi pisheh SELECt, no poradi razseqnost ili neshto takova bqh napisal neshto ot sorta: SELECT tbl1.pole1 .... WHERE tbl1.pole1=tbl2.pole2 AND tbl3.pole2=tbl4.pole1 ... i syotvetno v resultata poluchih nqkolko pyti edin i syshti red ot zapisite v tbl1.pole1
Trqbva malko da se pomychish da vidish dali she ti svyrshi rabota. Ideqta e v tova, che v WHERE nqmashe vryzka mejdu chast ot iziskvaniqta. Nqmah vreme da izsledvam sluchaq shtoto me gonqt kofti srokove :-(
Trqbva malko da se pomychish da vidish dali she ti svyrshi rabota. Ideqta e v tova, che v WHERE nqmashe vryzka mejdu chast ot iziskvaniqta. Nqmah vreme da izsledvam sluchaq shtoto me gonqt kofti srokove :-(
Re: Slojno SQL zapitvane
в postgresql, UPDATE има разширение (extension
) при което пак се променя само една таблица, но може да се взимат данните от други таблици
може и при други сървери да има подобно нещо
ето синтаксиса за postgresql
UPDATE [ ONLY ] table SET col = expression [, ...]
[ FROM fromlist ]
[ WHERE condition ]
тук във formlist можеш да слагаш други таблици от които да се взимат данните
може и при други сървери да има подобно нещо
ето синтаксиса за postgresql
UPDATE [ ONLY ] table SET col = expression [, ...]
[ FROM fromlist ]
[ WHERE condition ]
тук във formlist можеш да слагаш други таблици от които да се взимат данните
Syzdai Stored Procedure
compatible with MS SQL Server 2000
BEGIN / END se izpolva kogato imash izpylnenieto na niakolko queries. Mojesh da izpolvash i BEGIN TRANSACATION no v sluchaia e napylno bezmisleno. OSven tova za da update-tvash poveche oyt edna tablica, triabva da syzdadesh ALIAS mejdu tablicite, eto ti i primer:
------------------------
UPDATE AliasA
SET pole2 = Table2.pole2
FROM Table1 AS AliasA
INNER JOIN Table2
ON Alias1.pole1 = Table2.pole1
------------------
/* i procedurata */
create stored procedure spUpdate_myprocedure
AS
BEGIN
UPDATE AliasA
SET pole2 = Table2.pole2
FROM Table1 AS AliasA
INNER JOIN Table2
ON AliasA.pole1 = Table2.pole1
UPDATE AliasB
SET pole3 = Table3.pole1
FROM Table1 AS AliasB
INNER JOIN Table3
ON AliasB.pole1 = Table3.pole1
i t.n.
END
GO
BEGIN / END se izpolva kogato imash izpylnenieto na niakolko queries. Mojesh da izpolvash i BEGIN TRANSACATION no v sluchaia e napylno bezmisleno. OSven tova za da update-tvash poveche oyt edna tablica, triabva da syzdadesh ALIAS mejdu tablicite, eto ti i primer:
------------------------
UPDATE AliasA
SET pole2 = Table2.pole2
FROM Table1 AS AliasA
INNER JOIN Table2
ON Alias1.pole1 = Table2.pole1
------------------
/* i procedurata */
create stored procedure spUpdate_myprocedure
AS
BEGIN
UPDATE AliasA
SET pole2 = Table2.pole2
FROM Table1 AS AliasA
INNER JOIN Table2
ON AliasA.pole1 = Table2.pole1
UPDATE AliasB
SET pole3 = Table3.pole1
FROM Table1 AS AliasB
INNER JOIN Table3
ON AliasB.pole1 = Table3.pole1
i t.n.
END
GO