gpt4 book ai didi

mysql - mySql 中的简单查询——可能是子查询和连接(中级)

转载 作者:行者123 更新时间:2023-11-29 01:51:57 25 4
gpt4 key购买 nike

假设我有 2 个表:

  • 带有“client_id”和“name”列的“clients”

  • 带有“id”、“shop_name”和“active”列的“shops”(枚举 y/n)

我想创建一个查询,该查询将提供所有客户的姓名,+ 首先是他们的商店名称,该名称设置为事件 ('y')。如果没有 - 只需将其作为 null,但我需要拥有所有客户的名称。

所以基本上我想选择所有客户并检查他们是否有活跃的商店,如果有 - 首先将他们分配给合适的客户。

这是我的查询:

SELECT c.name
, s.shop_name
FROM clients AS c
LEFT
JOIN shops AS s
ON s.id = c.client_id
WHERE s.active='y'

但它不起作用 - 它只为我提供活跃商店的客户,而忘记了其他商店。

我正在考虑子查询,但这对我来说是一个新鲜话题...

有什么想法吗?

最佳答案

您需要将 WHERE 子句移动到您的 ON 条件:

Select     C.Name,
S.shop_name
From Clients As C
Left Join Shops As S On S.id = C.client_id
And S.active = 'y'

通过在 WHERE 子句中包含 LEFT JOIN 的右侧表,您可以将 OUTER JOIN 转换为 内连接。这样做是因为 WHERE 过滤器在 LEFT JOIN 完成后 执行,从而过滤掉 NULL 结果你会收到。

关于mysql - mySql 中的简单查询——可能是子查询和连接(中级),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39132402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com