如何用单条MySQL查询获取全部客户及对应订单(包含无订单客户)
MySQL查询语句解答
可以通过单条查询实现需求,使用MySQL的LEFT JOIN(左外连接)即可满足保留所有客户记录、同时匹配对应订单的要求:
SELECT c.ID, c.NAME, o.id AS `Order Id`, o.Status AS `Order Status` FROM Customers c LEFT JOIN Orders o ON c.ID = o.ClientID;
补充说明
- 上述语句以Customers表为左表,关联Orders表的条件为客户ID等于订单关联的ClientID,没有对应订单的客户,查询结果中
Order Id和Order Status字段会返回NULL。 - 如果你需要无订单客户的对应字段显示为空字符串,和示例输出完全一致,可以用
IFNULL函数做字段处理:
SELECT c.ID, c.NAME, IFNULL(o.id, '') AS `Order Id`, IFNULL(o.Status, '') AS `Order Status` FROM Customers c LEFT JOIN Orders o ON c.ID = o.ClientID;
内容的提问来源于stack exchange,提问作者Thimotty
相关产品推荐
相关产品推荐

