31. marts 2005 - 19:46Der er
7 kommentarer og 1 løsning
sammenlign 2 tabeller og returner records der er forskellige
Jeg har en lidt tricky opgave som jeg er lidt usikker på hvordan løses. Jeg har 2 tabeller med samme data, forklaringen på hvorfor dette setup er lidt besværlig, men det er underordnet. De 2 tabeller har hver især en delt primær nøgle, hvor data jo er identisk de 2 imellem.
Jeg skal nu tjekke om data i de 2 tabeller er ens, altså sammenligne de 2 og derefter udskrive evt rækker som ikke findes i den ene eller anden tabel.. forstod i den? Det kan vel laves via noget sql tænker jeg, men det er lidt omvendt det der med at skrive rækker som ikke findes i den anden tabel.. måske skal man gøre det over 2 queries?
Her lidt input som dog er forkert. Når man i sql siger Not equal (<> eller !=) så returnere man alle rækker på nær den ene som er lig. Jeg vil kun udskrive en record, hvis den ikke findes i den anden tabel..
-------------------------------------- select distinct * from tabel1 t1, tabel2 t2 where ((t1.nr1<>t2.nr1)and(t1.nr2<>t2.nr2));
Som outher join som performancemæssigt er bedre - især ved rigtig mange rækker:
select t1.* from tabel1 t1, tabel2 t2 where t1.nr1 = t2.nr1(+) and t1.nr2 = t2.nr2(+) UNION select t2.* from tabel1 t1, tabel2 t2 where t1.nr1(+) = t2.nr1 and t1.nr2(+) = t2.nr2;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.