Sql 处于联接状态的安定?
是否可以在连接条件下使用和 例如:Sql 处于联接状态的安定?,sql,mysql,join,Sql,Mysql,Join,是否可以在连接条件下使用和 例如: 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
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_模型,则将其添加到该行..如果不只是保留项。*和prod*
我知道一定有更好的方法可以做到这一点,但我现在只是在画空白。您是否尝试过并发现了问题。是的,您可以执行和加入操作。您是否尝试过并发现问题。是的,您可以在联接中执行和。您的查询应该可以工作
对于内部联接,它在功能上等同于ON子句和次要联接条件,或者将其放在WHERE子句中,但是在您的情况下,您正在进行外部联接,因此您希望它与ON子句并置,就像您编写它一样。您的查询应该可以工作
对于内部联接,它在功能上等同于ON子句和次要联接条件,或者将其放在WHERE子句中,但是在您的情况下,您正在进行外部联接,因此您希望它与ON子句进行AND运算,就像您编写的那样。我不确定括号是否是必需的,但如果添加一些括号,则肯定会更清楚:
LEFT JOIN partial as p ON (p.prod_model = prod.prod_model
AND p.order_id = $order_id)
我不确定括号是否是强制性的,但如果您添加一些,肯定会更清楚:
LEFT JOIN partial as p ON (p.prod_model = prod.prod_model
AND p.order_id = $order_id)
我还没有试着运行它。我只是想知道这是否可能,或者是否有更好的方法来解决这个问题。谢谢如果只运行那个查询,看看发生了什么,而不是在这里询问,可能会更快一些……我还没有尝试运行它。我只是想知道这是否可能,或者是否有更好的方法来解决这个问题。谢谢可能会更快地运行查询并查看发生了什么,而不是在这里询问。。。