如何更正条件WHERE和JOIN sql表请求?

问题描述 投票:0回答:1

我正在尝试从表中选择一个特定的信息,这取决于其他两个表的条​​件。

当我尝试单独的条件工作,但当我尝试与条件不工作。

Whit我从表中得到了正确的数据:

$sql = "SELECT * FROM commerce_order WHERE m_key = 'total'"; 

有了这个,我也从表中得到结果:

$sql = "SELECT * 
        FROM  commerce_order M 
        JOIN commerce_order_items I 
          ON M.item_id = I.item_id 
        JOIN produtcs P 
          ON I.order_id = P.ID 
        WHERE status = 'complete'";

但是当我尝试这个时,我没有得到任何结果:

$sql = "SELECT * 
        FROM commerce_order M 
        WHERE m_key = 'total' 
        JOIN commerce_order_items I 
          ON M.item_id = I.item_id 
        JOIN produtcs P 
          ON I.order_id = P.ID 
        WHERE status = 'complete'";`

我希望第一个代码结果可以通过第二个代码条件进行过滤。我现在是第一张表中应该返回的值,但我没有得到任何值。

php mysql datatable conditional
1个回答
0
投票

你不能把WHERE m_key = 'total'放在JOIN之前你所有的WHERE条款应该在你所有的JOINs之后:

$sql = "SELECT * 
    FROM commerce_order M  
    JOIN commerce_order_items I 
      ON M.item_id = I.item_id 
    JOIN produtcs P 
      ON I.order_id = P.ID 
    WHERE status = 'complete' AND m_key = 'total'";
© www.soinside.com 2019 - 2024. All rights reserved.