您能帮我使此查询有效吗
SELECT *
FROM `SC_orders`
LEFT JOIN `SC_customer_reg_fields_values` using(customerID)
WHERE (`statusID` = 2 OR `statusID` = 3 OR `statusID` = 21 OR `statusID` = 25 OR `statusID` = 26) AND DATE(order_time) > '2012-12-01 00-00-00'
LEFT JOIN `SC_ordered_carts`
ON orderID = orderID
GROUP BY orderID
我尝试将3个表中的信息合并到一个输出中。该查询在没有最后一个LEFT JOIN和Grouping的情况下工作正常。我的错误在哪里?
最佳答案
where
必须位于最后一个联接之后。同样,第二个ON
子句是模棱两可的,我认为group by
是不必要的,因为您没有任何聚合函数:
SELECT *
FROM `SC_orders`
LEFT JOIN `SC_customer_reg_fields_values` using(customerID)
LEFT JOIN `SC_ordered_carts` using(orderID)
WHERE (`statusID` = 2 OR `statusID` = 3 OR `statusID` = 21 OR `statusID` = 25 OR `statusID` = 26) AND DATE(order_time) > '2012-12-01 00-00-00'
关于mysql - MySQL在一个查询中联接3个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14388751/