Ich habe eine MySQL-Abfrage, die zwei TabellenMySQL Join Wo Not Exists
- Wähler
Haushalte sie kommen auf voters.household_id und household.id
Nun, was ich tun verbindet müssen ist es zu ändern, wo die Wähler Tabelle mit einer dritten Tabelle namens Beseitigung verbunden ist, entlang Voter.ID und Elimination.Voter_ID, wie auch immer der Fang ist, dass ich alle Datensätze in der Wähler-Tabelle, die eine entsprechende Aufzeichnung in der Beseitigung haben, auszuschließen Tabelle. Wie erstelle ich eine Abfrage, um dies zu tun?
das ist meine aktuelle Abfrage
SELECT `voter`.`ID`, `voter`.`Last_Name`, `voter`.`First_Name`,
`voter`.`Middle_Name`, `voter`.`Age`, `voter`.`Sex`,
`voter`.`Party`, `voter`.`Demo`, `voter`.`PV`,
`household`.`Address`, `household`.`City`, `household`.`Zip`
FROM (`voter`)
JOIN `household` ON `voter`.`House_ID`=`household`.`id`
WHERE `CT` = '5'
AND `Precnum` = 'CTY3'
AND `Last_Name` LIKE '%Cumbee%'
AND `First_Name` LIKE '%John%'
ORDER BY `Last_Name` ASC
LIMIT 30
+1 zurück schneller als Unterabfragen – ravi404
+1 viel schneller auf Hochlast dann Unterabfragen + wenn U JOINs anstelle von Unterabfragen tun können - nur JOINs sie sind viel einfacher für analizer. Ein anderes nützliches Beispiel, U könnte das Ergebnis erhalten, wenn es einige Zeilen in einer rechten Tabelle gibt oder wenn es keine gibt: 'SELECT V. * VON voter V LEFT JOIN eliminierung E ON V.id = E.voter_id ODER E .voter_id IS NULL' Beispiel: wenn U nicht alle Datensätze in der rechten Tabelle für jede Zeile von links speichern soll. –