Haymaker84 Geschrieben 8. April 2010 Teilen Geschrieben 8. April 2010 Hi, ich bin in SQL leich eingerostet und will ne bestandsabsuche nach inkonsistenzen durchführen. (Bitte nicht über normalisierung etc. lästern, das ganze ist ein Uraltsystem und das problem hier ist stark auf den Kern reduziert...) Wir haben 2 Tabellen "Bestellung" / "Bestellartikel", beide sind über "Bestellnr" und "ArtikelLfdNr"(Position des Artikels-laufende Nr) referenziert. Jetzt hab ich versucht eine Agfrage hinzubekommen, die die "Bestellnr" und "ArtikelLfdNr" von Sätzen aus "Bestellartikel" ausgibt, die keine Referenz zu einem Satz aus "Bestellung" bilden kann. Mein etwas misslungener Ansatz lautet so: select * from Bestellung b, Bestellartikel a where b.Bestellnr = a.Bestellnr and b.ArtikelLfdNr = a.ArtikelLfdNr Das soll eig. ein subselect werden, der sozusagen die positiven fälle abdeckt, darum wollte ich ein zweiten Select bauen, der die Schnittmenge bildet, also Sätze findet, die nicht in dieser Menge enthalten sind. Aber ich hab das Gefühl, dass ich SQL mit so ner Logik irgendwie vergewaltige... Ich komm aber grade nicht auf den eleganten Lösungsweg Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 8. April 2010 Teilen Geschrieben 8. April 2010 Ich verweise mal auf "join" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 8. April 2010 Teilen Geschrieben 8. April 2010 du suchst alle sätze aus Bestellartikel die nicht in Bestellungen zu finden sind, wenn ichs richtig verstanden habe, würde ein WHERE NOT EXISTS helfen. weiß aber nich ob dein DBS das kann ^^ SELECT * FROM Bestellartikel b WHERE NOT EXISTS (SELECT * FROM Bestellungen a WHERE a.Bestellnr = b.Bestellnr AND a.ArtikelLfdNr = b.ArtikelLfdNr) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
T3D Geschrieben 9. April 2010 Teilen Geschrieben 9. April 2010 ich wuerd einfach nen leftjoin von der haupttabelle machen und dann in der nebentabelle abfragen ob der primaer schluessel null ist SELECT * FROM t1 LEFT JOIN t2 ON (t1.primary = t2.verknuepfung) WHERE t2.verknuepfung IS NULL [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Haymaker84 Geschrieben 12. April 2010 Autor Teilen Geschrieben 12. April 2010 danke für eure antworten. "where not exists" wird bei uns leider nicht unterstützt... Dafür haben experimente mit JOIN mit den ganzen Zusätzen zum erfolg geführt. 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.