Veröffentlicht 8. März 200421 j hallo, ich habe zwei tabellen. tabelle A enthält IDs mit daten, tabelle B eine referenz von IDs aus der tabelle A. wie bekomme ich die übrigen IDs raus, die in tablle A vorhanden, aber nicht in tabelle B eingetragen sind? mit: select a.id from tabelle a, tabelle b where a.id <> b.id bekomm ich ja a * b datensätze. wer weiß rat? noah
8. März 200421 j Select ID From tabelle_a Where ID NOT IN (Select ID from tabelle_;[/code] Nicht gestestet, sollte aber funktionieren
8. März 200421 j Ohne Sub-Select: SELECT * FROM Tabelle_A LEFT JOIN Tabelle_B ON Tabelle_A.ID = Tabelle_B.ID WHERE Tabelle_B.data IS NULL;
9. März 200421 j SELECT p.pers_id from tblAuditor a, tblpersonen p LEFT JOIN tblpersonen ON (SELECT pers_id FROM tblAuditor) = p.pers_id WHERE (SELECT pers_id FROM tblAuditor) IS NULL .... klappt nicht. Es kommt die Fehlermeldung Die Unterabfrage gab mehr als einen Wert zurück. Das ist ungültig, wenn die Unterabfrage auf =, !=, <, <= , >, >= folgt oder als Ausdruck verwendet wird. Und das selbst wenn ich ein SELECT TOP 1 mache. Was ich will: Alle Pers_ ID's (und auch andere werte aber ich will nicht die ganze View posten) die NICHT in tblauditor vorhanden sind. was mache ich also falsch? *nicht ganz evrsteh*
9. März 200421 j Du mischt ja auch die beiden Ansaetze von Enrico T. und mir. Also nochtmal mein Ansatz: SELECT pers_id FROM tblpersonen WHERE pers_id NOT IN (SELECT pers_id FROM tblAuditor); Aber ... mwarlich = Noah :confused:
9. März 200421 j Nein nein ich bin nicht Noah, aber das Problem erschien mir sehr ähnlich und ich wollte keinen neune Thread aufmachen Das mit dem NOT IN funktionuckelt ja auch.. so habe ich es bisher. Allerdings dauert de Abfrage dann 24 sekunden, was entschieden zu langsam ist. Daher hatte ich mir gedacht mit einem Join geht es schneller. Daher würde ich es gerne mit dem JOIN machen. Kannsu mir da helfen?
9. März 200421 j Original geschrieben von mwarlich Kannsu mir da helfen? Siehe Enrico T.'s Post, sollte ja kein Prob sein, das Statement anzupassen, oder
17. März 200421 j Original geschrieben von mwarlich Das mit dem NOT IN funktionuckelt ja auch.. so habe ich es bisher. Allerdings dauert de Abfrage dann 24 sekunden, was entschieden zu langsam ist. Daher hatte ich mir gedacht mit einem Join geht es schneller. Daher würde ich es gerne mit dem JOIN machen. Zum Thema Geschwindigkeit. Ich arbeite derzeit an relativ unfangreichen Abfragen (vgl. Thread) und habe nun einen LEFT JOIN durch ein Subselect ersetzt ... und siehe da, er liefert nicht nur das richtig Ergebnis (), sondern ist auch um einiges schneller. Daher wird deine Abfrage imho nicht schneller, wenn du mit einem JOIN arbeitest
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.