テーブルBのテーブルAと一致するレコードを取得する必要がありますが、これを1つのクエリで実行できるかどうかはわかりません。すべての左レコードが右にあるMySQL結合テーブル
表
id | order_id | title
----------------------------------
1 | 1114 | Product 1
2 | 1115 | Product 1
3 | 1115 | Product 2
4 | 1116 | Product 1
5 | 1117 | Product 3
6 | 1118 | Product 4
7 | 1118 | Product 5
表B今
id | order_id | a_id | title
----------------------------------
1 | 2221 | 1 | Product 1
2 | 2222 | 2 | Product 1
3 | 2222 | 3 | Product 2
4 | 2223 | 7 | Product 5
私はこれがにつながるすべての製品は、テーブルBにもあるテーブルAからのすべてのorder_id
の値が必要になります。
1114
1115
b.a_id
の値がないため、1116が失敗する4
1117何らb.a_id
がないためではない6
と7
両方がb.a_id
であるため、値5
1118が失敗した失敗した私は、INNER JOIN
を試してみましたが、これはまた1118
を返します。私はまたWHERE b.a_id IS NULL
とLEFT JOIN
を試しましたが、それはまったく反対です。だから私はRIGHT JOIN
を試しましたが、それも1118
を返します。
このSQL Fiddleを参照してください。
私は自分の目標が何であるかを明確にしたいと思いますが、これが1つのクエリで管理できるかどうか不思議です。
。私は実際のデータ、テーブルA〜800.000レコード、B〜45.000レコードで自分のデータベースを実行します。クエリは〜600msで実行されます。 – Timo002