我有三个表:
1- j_order: order_id, order_created,
2- j_order_product: order_product_code, order_product_name, product_id, order_id
3- j_product_category: product_id, category_id
现在,我需要选择所有这些字段。
关系是:
j_order.order_id = j_order_product.order_id
j_order_product.product_id = j_product_category.product_id
这是我正在使用的查询:
SELECT j_order.order_id, order_created , order_product_code,
order_product_name, j_order_product.product_id, j_product_category.category_id
FROM `j_order`
INNER JOIN `j_order_product`
ON j_order.order_id = j_order_product.order_id
INNER JOIN `j_product_category`
ON j_product_category.product_id = j_order_product.product_id
WHERE category_id=2
问题:每个订单只返回一种产品。因此,对于具有多个产品的订单,只有第一个可见。
最佳答案
SELECT j_order.order_id, order_created , order_product_code,
order_product_name, j_order_product.product_id, j_product_category.category_id
FROM `j_order`
INNER JOIN `j_order_product`
ON j_order.order_id = j_order_product.order_id
INNER JOIN `j_product_category`
ON j_product_category.product_id = j_order_product.product_id
这样就可以了。
我排除了
WHERE category_id=2
,这就是为什么它仅显示one Product per Order
(类别2)的原因。希望这可以帮助。
关于mysql - 联接三个表间接多行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33697017/