简体   繁体   中英

MySQL JOIN 3 tables in one query

Could you please help me to make this query works

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

I try to combine information from 3 tables in one output. This query works fine without last LEFT JOIN and Grouping. Where is my mistake?

The where needs to be after the last join. also, the second ON clause is ambiguous and I think the group by is unnecessary since you don't have any aggregate functions:

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'

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM