您能帮我使此查询有效吗

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/

10-15 18:29