gpt4 book ai didi

mysql - INNER JOIN 组合 2 列

转载 作者:行者123 更新时间:2023-11-29 09:30:49 26 4
gpt4 key购买 nike

我有一个包含员工信息的常规表: ID 整数 名称 varchar

此外,我还有一张购物表。此处列出了员工 ID再次在列卖家或承包商中。有可能是一名员工没有做过任何销售。也有可能没有承包商或卖家参与。

EMPLOYEES
ID NAME
1 Bill
2 Cliff
3 Mary
4 Jon

PURCHASES
ID SELLER CONTRACTOR
1 1 2
2 1
3 2 1
4 2 3

我想获取包含员工 ID、姓名和信息的列表,如果该员工列在卖方和/或承包商栏中。所以基本上该员工是否做过任何销售。

ID  NAME    SALES
1 Bill 1
2 Cliff 1
3 Mary 1
4 Jon 0

当员工被列在多个销售中时,我得到的是双行。我尝试了很多 LEFT JOIN 语句。

最佳答案

您可以使用EXISTS来做到这一点:

select e.*,
exists (select 1 from purchases where e.id in (seller, contractor)) sales
from employees e

请参阅demo .

或者使用 LEFT JOIN 和聚合:

select e.id, e.name, max(p.id) is not null sales
from employees e left join purchases p
on e.id in (p.seller, p.contractor)
group by e.id, e.name

请参阅demo .
结果:

| ID  | NAME  | sales |
| --- | ----- | ----- |
| 1 | Bill | 1 |
| 2 | Cliff | 1 |
| 3 | Mary | 1 |
| 4 | Jon | 0 |

关于mysql - INNER JOIN 组合 2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58787615/

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