Noah Geschrieben 8. März 2004 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DerMatze Geschrieben 8. März 2004 Teilen Geschrieben 8. März 2004 Select ID From tabelle_a Where ID NOT IN (Select ID from tabelle_;[/code] Nicht gestestet, sollte aber funktionieren Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 8. März 2004 Teilen Geschrieben 8. März 2004 Verschoben -> Datenbanken Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 8. März 2004 Teilen 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; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mwarlich Geschrieben 9. März 2004 Teilen 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* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DerMatze Geschrieben 9. März 2004 Teilen 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: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
mwarlich Geschrieben 9. März 2004 Teilen 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DerMatze Geschrieben 9. März 2004 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Noah Geschrieben 10. März 2004 Autor Teilen Geschrieben 10. März 2004 danke erstmal für die antworten. werds mal probieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DerMatze Geschrieben 17. März 2004 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.