Hirdetés

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

  • Khelben
    nagyúr

    Sziasztok!

    SQL téren nagyon kezdő vagyok, ezért a segítségetek kérném. Van két táblám(a mezőneveket hirtelen így fejből nem tudom sajnos). A táblák tartalma folyamatosan változik. Hogyan tudom összehasonlítani a két tábla tartalmát úgy, hogy kiírja nekem a csak a külnbségeket. Tehát ha pl az A táblába bekerült egy új rekord akkor csak azt írja ki, ha pl csak a B táblába került be egy új rekord akkor csak azt írja ki? Tehát nekem tulajdonképpen csak azok a rekordok kellenek amik nem egyeznek meg. Az A táblában egy mezővel több van mint a B-ben. Én az except parancsot próbáltam használni,de nem igazán jött össze.

    Legutoljára ezt hasnáltam, de ez mindent visszaadot csak azt nem ami kellett volna :)

    select 'table1' as tblName, * from
    (select * from table1
    except
    select * from table2) x
    union all
    select 'table2' as tblName, * from
    (select * from table2
    except select *
    from table1) x

    Tudja valaki hogy nézhet ki a script?

    Előre is köszönöm!

    kampi

    Én még csak most járok tanfolyamra :) de 2 select-tel csinálnám:

    select * from a
    where not exists (select * from b where a.mezo1=b.mezo1 and a.mezo2=b.mezo2....)

    majd ugyanez b-vel

    select * from b
    where not exists (select * from a where a.mezo1=b.mezo1 and a.mezo2=b.mezo2....)

    ha van egy kulcs, ami alapján tudsz hasonlítani, akkor értelemszerűen csak 1 mezőt kell vizsgálni.

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