私は2つのMySQLテーブルIM_Transfer
とIM_INV
を持っています。私は定期的に次のクエリを実行します。ほとんどの時間 LEFT JOINのSQLクエリは結果を返しません
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
、
IM_Transfer
によって
IM_Transfer
試合で株のほとんど。
sku
および
IM_INV
。
ITEM_NO
と、最後の2列に
null
の値が返されないものがあります。
IM_Transfer
の単一の行でこのクエリを実行しましたが、一致するデータはIM_INV
にありません。 null
の行をLOC_ID
とQTY_ON_HND
列に返すようにクエリを更新するにはどうすればよいですか?外側の結合されたテーブル内の行がある場合句のみ真と評価され、予め
タグ付けするときは注意が必要です。 mysql <> SQLサーバ。 –
ここでの問題は、left joinをwhere句で内部結合にしたためです。列を参照するときは、常に表を指定するという習慣が必要です。 –
http://wiki.lessthandot.com/index.php/WHERE_conditions_on_a_LEFT_JOIN – HLGEM