Suche nach Paare, die nicht in eine andere Tabelle
Ich habe eine Tabelle (Bestellungen) mit Auftrags-id, Standort 1, Standort 2 und eine weitere Tabelle (Laufleistung) mit Lage 1 und Lage 2.
Bin ich mit der Ausnahme-Aktion, um wieder diese Standort-Paare Bestellungen, die nicht in Meilen. Aber ich bin mir nicht sicher wie ich können sich auch wieder die entsprechenden order_id, dass gehört zu jenen Paaren (order_id nicht vorhanden Kilometerstand Tabelle). Das einzige, was ich denken kann, ist mit einer äußeren select-Anweisung, die sucht Aufträge für diese Position Paare. Ich habe es nicht ausprobiert, aber ich bin auf der Suche nach anderen Optionen.
Ich habe so etwas wie dieses.
SELECT location_id1, location_id2
FROM orders
except
SELECT lm.origin_id, lm.dest_id
from mileage
Wie kann ich auch abrufen der Auftrags-id für diese Paare?
- Ist eine der Spalten null-Werte zulässt, und wird es keine null-Werte enthalten? Scheint nicht wahrscheinlich, in dem Fall Thomas, die Antwort ist richtig.
- Die Spalten sind keine null-Werte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie versuchen, mit Hilfe einer not Exists-Anweisung statt:
Andere Lösung, wenn Sie wirklich wollen, um zu verwenden, Außer
EXCEPT
Wenn Sie möchten, um die Paare, die nicht existieren, auf Kilometer-Tabelle, die Sie tun können, so etwas wie
Könnte man Links-outer-join die Laufleistung Tisch, und nur die Zeilen zurückgeben, die nicht mitmachen. Etwa so:
Ich dachte, es wurde aber als Gabe zeigte, bedeutet dies nicht, NICHT in SQL-Server 2008:
Wäre diese Lösung mit einer AUSNAHME (die eigentlich ist eine VERKNÜPFUNG zwischen der ursprünglichen Abfrage und Aufträge), die arbeiten schnell, oder schrecklich? Ich habe keine Ahnung.
MySQL unterstützt keine Ausnahme. Für alle, die auf diese Frage mit Hilfe von MySQL, hier ist, wie Sie es tun:
http://nimal.info/blog/2007/intersection-and-set-difference-in-mysql-a-workaround-for-except/