Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 处于联接状态的安定?_Sql_Mysql_Join - Fatal编程技术网

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)

我还没有试着运行它。我只是想知道这是否可能,或者是否有更好的方法来解决这个问题。谢谢如果只运行那个查询,看看发生了什么,而不是在这里询问,可能会更快一些……我还没有尝试运行它。我只是想知道这是否可能,或者是否有更好的方法来解决这个问题。谢谢可能会更快地运行查询并查看发生了什么,而不是在这里询问。。。