Ich habe 2 MySQL-Tabellen IM_Transfer
und IM_INV
. Ich die folgende Abfrage regelmäßig:SQL-Abfrage mit LEFT JOIN gibt keine Ergebnisse zurück
SELECT
`IM_Transfer`.`sku`,
`IM_Transfer`.`vendor_sku`,
`IM_Transfer`.`Description`,
`IM_Transfer`.`Receiver`,
`IM_INV`.`LOC_ID`,
`IM_INV`.`QTY_ON_HND`
FROM
`IM_Transfer`
LEFT JOIN
`IM_INV`
ON
`IM_Transfer`.`sku` = `IM_INV`.`ITEM_NO`
WHERE `LOC_ID` = "AF"
OR `LOC_ID` = "LO"
OR `LOC_ID` = "S"
OR `LOC_ID` = "SL"
ORDER BY
`IM_Transfer`.`sku`,
`IM_INV`.`LOC_ID`
ASC
Die meiste Zeit sind die meisten der Linien in IM_Transfer
Spiel von IM_Transfer
. sku
und IM_INV
. ITEM_NO
und diejenigen, die nicht mit null
Werte in den letzten 2 Spalten zurückkommen.
Ich habe gerade diese Abfrage mit einer einzigen Zeile in IM_Transfer
ausgeführt und es hat keine übereinstimmenden Daten in IM_INV
. Wie aktualisiere ich die Abfrage, um immer noch eine Zeile mit nur null
in den Spalten LOC_ID
und QTY_ON_HND
zurückzugeben?
Vielen Dank im Voraus
Sie sollten beim Markieren vorsichtig sein. mysql <> SQL-Server. –
Das Problem hier ist, weil Sie Ihren linken Join in einen inneren Join mit Ihrer Where-Klausel umgewandelt haben. Sie sollten sich angewöhnen, bei der Referenzierung von Spalten immer die Tabelle anzugeben. –
http://wiki.lessthandot.com/index.php/WHERE_conditions_on_a_LEFT_JOIN – HLGEM