代码之家  ›  专栏  ›  技术社区  ›  Simon Perepelitsa

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

  •  1
  • Simon Perepelitsa  · 技术社区  · 16 年前

    我有三张桌子:

    • orderProducts orderId , productId , productValue
    • products ( 产品ID productName )
    • values 产品ID , , productValuePrice ).

    医嘱ID . 如何通过一个MySQL查询实现这一点?

    3 回复  |  直到 16 年前
        1
  •  1
  •   Andomar    16 年前

    你可以用一个 left join 返回 orderProducts 其他表中不存在对应行的表。任何缺少的列都将为空,允许您标记错误条件。默认值 join inner 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
  •  1
  •   Nick Craver    16 年前

    您可以通过连接这样做,例如:

    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
    
        3
  •  0
  •   Sarfraz    16 年前

    .......

     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