1つのテーブルに178行、特定の順序で179行がありますが、何を問わずSQLクエリを取得して179行を表示することはできません。それは私に178行だけを示しています。左結合でSQL Serverのすべての行が返されない
SELECT
rl.po, rl.item_id, rl.pieces_received,
ol.order_id, ol.item_id, ol.pieces_shipped
FROM
receipt_lines rl
LEFT JOIN
hi_order_lines ol ON rl.item_id = ol.item_id
WHERE
ol.order_id = 'TR0202379'
AND rl.po = 'TR0202379'
私はまた、クエリの他のバリエーションの中で
SELECT
rl.po, rl.item_id, rl.pieces_received,
ol.order_id, ol.item_id, ol.pieces_shipped
FROM
receipt_lines rl
LEFT JOIN
hi_order_lines ol ON rl.item_id = ol.item_id
AND ol.order_id = 'TR0202379'
AND rl.po = 'TR0202379'
を試してみましたが、私は間違っている可能性がありますかわかりません。ただ、可視化の目的のためにいくつかのデータを追加すること
..
PO item_id pieces_received order_id item_id pieces_shipped
TR0202379 CM504438-BLK- M 77 TR0202379 CM504438-BLK- M 77
TR0202379 CM504438-BLK-XXL 14 TR0202379 CM504438-BLK-XXL 14
TR0202379 CM504438-BLK- S 32 TR0202379 CM504438-BLK- S 32
TR0202379 CM504438-LDN- XL 2 TR0202379 CM504438-LDN- XL 2
すべてのヘルプは大歓迎です。
おかげ
残っているテーブルを参照する述語がどこにある場合、その左結合を内側結合に変えています。代わりに "ol.order_id = 'TR0202379'"を結合条件に移動してみてください。 –
何を意味するのかわからない、私の2番目の例のようなものを参照していますか?あなたは例を挙げて説明できませんか? – user2797021
これは: 'ol.order_id = 'TR0202379''は、これが真である行だけを確実に取得します。それを 'ON'節に移動します。 –