mysql - SQL,Where 函数用 YES/No 条件提取字段

标签 mysql

我有一个跟踪客户及其指定员工的数据库。一个客户可以分配多名员工,但只能分配一名案例经理。并非所有客户都有指定的工作人员作为案件经理。该表如下所示:

Client    Case Manager?        Staff 
John 1          1              Don 1
John 1          0              Don 2 
John 1          0              Don 3
John 2          0              Don 1
John 2          0              Don 2
John 3          0              Don 1
John 3          0              Don 2
John 4          1              Don 5

因此,John 1 被分配给三名员工,但实际上只有 Don 1 是案件经理。 John 2 被分配给两名工作人员,但他们都不是案件经理。我希望能够运行一份列出所有客户及其案件经理的报告。如果客户没有案例管理器,我需要它返回 NULL 或类似的功能。

我可以轻松地将其设置为使用 WHERE 函数来向我显示有案例管理器的客户,但会剔除没有案例管理器的客户。

想法?

最佳答案

您可以使用 LEFT JOIN:

SELECT DISTINCT t1.Client, t2.Staff AS CaseManagerName
FROM
  tablename t1 LEFT JOIN tablename t2
  ON t1.Client = t2.Client
     AND t2.casemanager = 1

请看 fiddle here .

或者,如果客户可以有多个案例经理,您可以使用 GROUP_CONCAT:

SELECT t1.Client, GROUP_CONCAT(DISTINCT t2.Staff) AS CaseManagerName
FROM
  tablename t1 LEFT JOIN tablename t2
  ON t1.Client = t2.Client
     AND t2.casemanager = 1
GROUP BY
  t1.Client

关于mysql - SQL,Where 函数用 YES/No 条件提取字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32914779/

相关文章:

mysql - 是否可以对某人刚刚更新的行进行幻读?

php - 使用php dbo通过引用行号和列号来显示数据

mysql - 将包含时间数据的 CSV 导入 MySQL 时,为什么会收到 '1292 Truncated' 警告?

php - 文本区域连续不显示多于一个新行

php - 使用 php 和 mysql 在 iF​​rame V2 中显示特定的 URL

mysql - SQL查询结果

php - 错误 (150) - 设计基本关系数据库时遇到问题

php - Laravel Eloquent 多重关系找到小于 x 天的最大日期,使用预加载

mysql - 我无法使用DataGrip数据库客户端从本地主机连接到Docker中的mysql

c# - Mailkit:获取消息并将它们复制到 MySQL,附件到驱动器