Slojno SQL zapitvane

4 отговора 223 прегледа
#1

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
Отговор
в отговор на SBD #2

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 :-(

Отговор
в отговор на SBD #4

Re: Slojno SQL zapitvane

в postgresql, UPDATE има разширение (extension ) при което пак се променя само една таблица, но може да се взимат данните от други таблици

може и при други сървери да има подобно нещо

ето синтаксиса за postgresql

UPDATE [ ONLY ] table SET col = expression [, ...]
[ FROM fromlist ]
[ WHERE condition ]

тук във formlist можеш да слагаш други таблици от които да се взимат данните

Отговор
в отговор на SBD #5

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

Отговор