是否可以在连接条件下使用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。*
我知道有更好的方法可以做到这一点,但我现在只是画空白。
答案 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)