[ vzdrale @ 30.01.2007. 19:14 ] @
Imam sledece Tabele:

vOrder
UserID
OrderID
OrderDate
Note
...
...


vOrderItem
OrdID
OrdItemNo
ProdID
qty
...


vProduct
ProdID
Brand
Des
...
...


vUsers
UserID
FirstName
LastName
....

Sad mi treba (ako moze) sa jednim SELECT-om da dobijem sledeci red

vOrder.OrdID, vOrder.OrderDate, vUsers.FirstName, vUsers.LastName, vOrderItem.qty, vProducts.brand, vProducts.des

znaci povezujem 4 tabele u jednom SQL statementu. Moguce?






[ goranvuc @ 30.01.2007. 19:34 ] @
Naravno ;)

Code:

SELECT vOrder.OrdID, vOrder.OrderDate, vUsers.FirstName, vUsers.LastName, vOrderItem.qty, vProducts.brand, vProducts.des 
FROM ((vUsers 
INNER JOIN vOrder ON vUsers.UserID = vOrder.UserID) 
INNER JOIN vOrderItem ON vOrder.OrderID = vOrderItem.OrdID) 
INNER JOIN vProduct ON vOrderItem.ProdID = vProduct.ProdID 

Nisi nam naveo koji je DBMS pa sam ti stavio zagrade za svaki slucaj (neki DBMS to zahtevaju). Takodje su pretpostavljene i relacije, mada nije bilo tesko posto si uglavnom ocuvao nazive stranih kljuceva (osim u jednom slucaju). Takodje su postavljene INNER JOIN relacije, a ako ti je moguca pojava podataka koja nema vrednost za neki od navedenih kljuceva onda na toj relaciji stavi odgovarajuci LEFT JOIN.
[ vzdrale @ 31.01.2007. 18:15 ] @
Hvala puno, istestiracu ovo danas, ja sam koristio par select naredbi, a ovo bi mi mnogo ubrzalo kod...