Noah Geschrieben 8. März 2004 Geschrieben 8. März 2004 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
DerMatze Geschrieben 8. März 2004 Geschrieben 8. März 2004 Select ID From tabelle_a Where ID NOT IN (Select ID from tabelle_;[/code] Nicht gestestet, sollte aber funktionieren
etreu Geschrieben 8. März 2004 Geschrieben 8. März 2004 Ohne Sub-Select: SELECT * FROM Tabelle_A LEFT JOIN Tabelle_B ON Tabelle_A.ID = Tabelle_B.ID WHERE Tabelle_B.data IS NULL;
mwarlich Geschrieben 9. März 2004 Geschrieben 9. März 2004 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*
DerMatze Geschrieben 9. März 2004 Geschrieben 9. März 2004 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:
mwarlich Geschrieben 9. März 2004 Geschrieben 9. März 2004 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?
DerMatze Geschrieben 9. März 2004 Geschrieben 9. März 2004 Original geschrieben von mwarlich Kannsu mir da helfen? Siehe Enrico T.'s Post, sollte ja kein Prob sein, das Statement anzupassen, oder
Noah Geschrieben 10. März 2004 Autor Geschrieben 10. März 2004 danke erstmal für die antworten. werds mal probieren.
DerMatze Geschrieben 17. März 2004 Geschrieben 17. März 2004 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden