Cytat(a79rtur @ 2005-09-23 08:30:17)
witam
mam nastepujacy proble
sa 3 tabele tab1, tab2 i tab3 potrzebuje dostac rekordy ktore występują w tab1 ale nie mają odpowiednika w tab2 lub tab3, lub tez w zadnej z nich. probowalem cos w stylu
SELECT *
FROM tab1 LEFT JOIN tab2 ON tab1.pole1=tab2.pole2 LEFT JOIN tab3 ON tab1.pole1=tab3.pole3 WHERE tab2.id=NULL OR tab3.id=NULL
ale nie dalo to dobrych rezultatów
Z doświadczenia wiem że najdłużej trwają w MySQLu zapytania z OR ;/
Ja bym proponował zrobic w ten spoób:
(SELECT tab1.*
FROM tab1 LEFT JOIN tab2 ON tab1.pole1=tab2.pole2
WHERE tab2.id IS NULL)
UNION
(SELECT tab1.*
FROM tab1 LEFT JOIN tab3 ON tab1.pole1=tab3.pole3
WHERE tab3.id IS NULL)
Mam nadzieje że pomoże

Cytat("SongoQ")
Mozesz podeslekta i mieszac ulozeniem warunkow
Podselekty w mysqlu są bardzo mało wydajne i dodatkowo dostępne dopiero od wersji 5 w SELECT ;/
Pozdrawiam
...