Ich stecke in einer Abfrage mit einer Verknüpfung fest. Die Website des Kunden läuft mit mysql4, so dass eine Subquery keine Option ist. Meine Versuche, mit einer Verknüpfung umzuschreiben sind nicht zu gut gehen.
Ich muss alle in der Tabelle "Auftragnehmer" aufgeführten Auftragnehmer auswählen, die nicht in der Tabelle "Auftragnehmer2Label" mit einer bestimmten Label-ID und Bezirks-ID enthalten sind. Sie könnten jedoch in der Tabelle contractors2label mit anderen IDs für Bezeichnung und Bezirk aufgeführt sein.
Tabelle: Auftragnehmer
cID (primär, automatische Nummer)
Unternehmen (varchar)
...usw...
Tabelle: contractors2label
cID
labelID
countyID
psID
Diese Abfrage mit einer Unterabfrage funktioniert:
SELECT company, contractors.cID
FROM contractors
WHERE contractors.complete = 1
AND contractors.archived = 0
AND contractors.cID NOT IN (
SELECT contractors2label.cID FROM contractors2label
WHERE labelID <> 1 AND countyID <> 1
)
Ich dachte, dass diese Abfrage mit einer Verknüpfung das Äquivalent sein würde, aber sie liefert keine Ergebnisse. Eine manuelle Überprüfung der Daten zeigt, dass ich 34 Zeilen erhalten sollte, was die obige Unterabfrage auch liefert.
SELECT company, contractors.cID
FROM contractors
LEFT OUTER JOIN contractors2label ON contractors.cID = contractors2label.cID
WHERE contractors.complete = 1
AND contractors.archived = 0
AND contractors2label.labelID <> 1
AND contractors2label.countyID <> 1
AND contractors2label.cID IS NULL
0 Stimmen
+1 für neu hier zu sein, und die Verwaltung eine richtig formatierte Frage mit einer guten Beschreibung Ihres Problems einschließlich Beispielcode zur Verfügung zu stellen :)