我希望有人能够阐明我的问题。加入两个表格但每个记录的数量不同的问题
我有两个表格与客户订单中的产品相关。一个表称为order_product,另一个表为order_option。我需要加入这些表格才能使产品与相关选项相匹配。但是,并非所有产品都有选择,这就是我的问题所在。
下面是从每个表持有的相关性在我的查询列的列表:
order_product表:
- order_product_id
- ORDER_ID
- 名
order_option:
- ORDER_ID
- order_product_id
- 名
- 值
远的不说,我有产品A具有任何选项,并有一个 “大小” 选项B产品。
我现在的说法是:
SELECT * FROM order_product op
LEFT JOIN order_option o ON o.order_id = op.order_id
WHERE op.order_id = 1
但是,由于这样的事实:1的顺序ID是在order_option表,它是所有附加的“大小”选项,这两种产品。
我然后设法:
SELECT * FROM oc49_order_product op
LEFT JOIN oc49_order_option o ON o.order_id = op.order_id
WHERE op.order_id = 1 AND op.order_product_id = o.order_product_id
但当时我只得到了B产品中,唯一一个与大小选择的结果。
本质上,唯一唯一匹配是order_product_id,但由于产品A没有选项,因此该产品ID不存在于order_option表中,因此不会有结果。我在想也许我需要某种IF ELSE语句,但我不确定它们在MySQL中是如何工作的。我希望我不需要2个查询在这里也....
任何帮助表示赞赏,谢谢!
迈克尔