在加入条件下进行AND运算?

时间:2010-06-30 17:43:22

标签: sql mysql join

是否可以在连接条件下使用AND?

例如:

   SELECT * 
     FROM items  
LEFT JOIN products as prod ON prod.prod_id = items.prod_id  
LEFT JOIN partial as p ON p.prod_model = prod.prod_model 
                      AND p.order_id=$order_id  
    WHERE order_id = $order_id  
 ORDER BY prod.prod_weight ASC

我猜它不起作用。 $ order_id通过PHP变量传入。我想要发生的是,如果部分表中有一行具有相同的order_id和prod_model,则将其添加到行...如果不是只保留项目。*和prod。*

我知道有更好的方法可以做到这一点,但我现在只是画空白。

3 个答案:

答案 0 :(得分:1)

您是否尝试过并发现问题。是的,你可以在加入中做AND。

答案 1 :(得分:0)

您的查询应该有效。

对于内部联接,它在功能上等同于AND子句的辅助连接条件或将其放在WHERE子句中,但在您的情况下,您正在进行外部联接,因此您希望它与ON子句进行AND运算,就像你写的。

答案 2 :(得分:0)

我不确定括号是否是强制性的,但如果添加一些括号则更加清晰:

LEFT JOIN partial as p ON (p.prod_model = prod.prod_model 
                           AND p.order_id = $order_id)