Topic: Užklausa per 4 ir daugiau lentelių

Sveiki,

Ar įmanoma tokia užklausa:

Tarkime yra keturios lentelės: A, B, C, D. Jos visos turi bendrą ryšį ID. A - lentelėje yra apsoliučiai visi galimi ID. Kitose lentelėse yra tik po kažkokią dalį plius papildoma informacija.

Tarkime man dabar reikia išrinkti tik tuos įrašus, kurie yra B, C lentelėse tačiau jų nėra D lentelėje.

Iki šiol naudoju tokią struktūrą:
SELECT id, ...,  FROM A WHERE ID != '' AND ID IN (SELECT ... FROM B) AND ID NOT IN (SELECT .. FROM D)..


Tačiau tokiu atveju negaliu išsivesti/sortinti pagal B, C lentelių laukus..


Tikiuosi aiškiai išdesčiau problemą.

Geros dienos ;-)

2 (edited by simas 2009-10-09 10:59:35)

Re: Užklausa per 4 ir daugiau lentelių

galbūt suveiktų toks join:

select a.id as 'aid', b.id as 'bid', d.id as 'did',...kiti laukai..  from A left join B on a.id=b.id left join d on a.id=d.id
where did not null
order by b.laukas

3 (edited by BigBug 2009-10-12 12:22:50)

Re: Užklausa per 4 ir daugiau lentelių

Na, kad kažkaip nevisai taip jis čia dirba..

Re: Užklausa per 4 ir daugiau lentelių

Na idėja vistiek išlieka ta pati, jungi lenteles (JOIN) pagal norimus laukus, nenaudok IN() operatoriaus.

Re: Užklausa per 4 ir daugiau lentelių

Dabar jau aišku pasidarė, tiesiog reikėjo pažaisti su nedidelėm pavyzdinėm lentelėm. Dėkoju už pagalbą ;-)