从多个表中选择MySQL中的订购产品

时间:2010-02-21 13:00:21

标签: sql mysql

我有3张桌子:

  • orderProductsorderIdproductIdproductValue),
  • productsproductIdproductName
  • valuesproductIdproductValueproductValuePrice)。

我需要选择定义orderId的订单产品(产品ID,名称,价值,价格)。 如何使用一个MySQL查询?

3 个答案:

答案 0 :(得分:1)

您可以通过加入来完成此操作,例如:

Select o.orderId, p.productId, p.name, o.productValue, v.productValuePrice
From products p
     Join values v on p.productId = v.productId
     Join orderProducts o on p.productId = o.orderId
Where orderId = 5

答案 1 :(得分:1)

您可以使用left join返回orderProducts表中没有其他表中相应行的行。任何缺少的列都将为NULL,允许您标记错误条件。默认joininner join,并且只返回两个连接表中具有匹配条目的行。

select op.product id, p.name, v.productValue, p.productValuePrice
from orderProducts op
left join products p on p.productId = op.productId
left join values v 
    on v.productId = op.productId
    and v.productValue = op.productValue
where op.orderId = <YourOrderId>

答案 2 :(得分:0)

.......

 select p.productId, p.productName, o.productValue, v.prodctValuePrice from orderProducts o  join products p on o.productId = p.productId join values v on v.productId = p.productId where p.productId = 1