Hirdetés

Új hozzászólás Aktív témák

  • Apollo17hu
    őstag

    Sziasztok

    Bocsánat előre is, lehet együgyű kérdés jön. Ha van két táblám, mondjuk egy ember, meg egy auto, és az auto táblában pl. egy "tulaj" mezőben idegen kulcsként vannak emberek, akkor a következő két lekérdezés közt van különbség? Csak nagyon egyszerű példákkal

    1:
    SELECT e.nev FROM ember e, auto a WHERE e.szemigszam = a.tulaj;

    2:
    SELECT e.nev FROM ember INNER JOIN auto a ON e.szemigszam = a.tulaj;

    Mármint működik mindkettő, inkább arra gondolok, hogy az első is teljesen rendben van?

    Nekem egyetemen a 2.-at (JOIN-ok) oktatták, munkahelyen az 1.-t használjuk. Szerintem aki teljesen kezdő SQL-ben, annak könnyebben rááll az agya az 1. verzióra, mert ott az egyenlőségjelen kívül (+) jelöli a gyenge kötést, míg a 2. verzióban LEFT, RIGHT, OUTER stb. kulcsszavak is használandóak. Az 1. verzió egyetlen hátránya, hogy a FULL OUTER JOIN-t nem lehet szépen megvalósítani (UNION kell hozzá). Ebben az egy esetben használom én is inkább a JOIN-t.

    Ja, és fórumtársak írták, hogy nekik a JOIN sokkal átláthatóbb, mert egyből látszik, hogy mi hova kapcsolódik. Ez igaz, de ha tucatnyi tábla van összekapcsolva, akkor talán jobb, ha előbb látszik, hogy egyáltalán milyen táblákat használ a lekérdezés (1. verzióban FROM után a legtöbb tábla felsorolásra kerül). Ha az ember az ideje 90%-ában ugyanazokkal a táblákkal dolgozik, akkor úgyis fejből tudja a kapcsolatokat.

Új hozzászólás Aktív témák