JOIN
将表ON
不包含唯一值的列自身是否会产生分析结果?
我见过的大多数自连接查询都是在 PK
列上完成的。我在计算正确数字时遇到了问题,所以我想知道我的做法是否有意义。
例如
SELECT *
FROM Employee a
JOIN Employee b
ON a.Birthdate = b.Birthdate
最佳答案
正如您现在编写的查询,它将返回所有符合以下条件的员工对:
- 具有相同生日的不同员工记录
- 所有员工记录都将返回链接到他们自己
我认为这没有多大意义。您能否提供更多信息,说明您想要实现什么以及 Employee 表的结构是什么?
如果 Birthdate
可以为空,则您必须修改 ON
子句以加入 NULL
值,例如:
SELECT *
FROM Employee a
JOIN Employee b
ON COALESCE(a.Birthdate,'19000101') = COALESCE(b.Birthdate,'19000101')
关于sql-server - 在非键列上自联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38583576/