gpt4 book ai didi

SQL Server - 与 where/on 条件交叉联接

转载 作者:行者123 更新时间:2023-12-03 20:17:15 24 4
gpt4 key购买 nike

我有一个包含员工每月数据的表格,我想进行交叉联接,但前提是确保他们在同一个月内。表看起来像这样:

  Month      Emp_id
1/1/2017 123
1/1/2017 234
1/1/2017 345
1/1/2017 456
2/1/2017 123
2/1/2017 234
2/1/2017 345
...

我想做这样的事情:
select *
from t1
cross join t1 as t2
on t1.Month = t2.Month

有没有办法做到这一点?

编辑:

详细说明,如果我在每个月和 12 个月内有 100 名员工,我希望得到一个包含 120,000 行(每个月 100 * 100 笛卡尔,乘以 12(每个月 1 个))的输出表,而不是做一个完整的笛卡尔将是 1,440,000。

最佳答案

是的,它被称为 inner join :

select *
from t1 inner join
t1 t2
on t1.Month = t2.Month

你可以用 where 表达同样的意思。和 cross join ,但我认为 inner join优于:
select *
from t1 cross join
t1 t2
where t1.Month = t2.Month;

请注意,您正在使用 select * ,这意味着您将有重复的列名并且不知道是哪个 t1他们来自。如果这是一个问题,请提出另一个问题。

关于SQL Server - 与 where/on 条件交叉联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49557464/

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