SQL内部连接2个表到1个问题

时间:2011-07-07 21:17:29

标签: sql sql-server

如果我有以下代码行:

INNER JOIN #CompanyIdT t ON e.[companyId] = t.[Value] AND c.[CompanyId] = t.[Value]

这总是加入t表中的同一家公司吗?那么e和c在1条记录中是否会有不同的CompanyId?

由于

2 个答案:

答案 0 :(得分:2)

不,e和c在结果集中的单个记录中对于companyID永远不会有不同的值。它们将始终匹配t.Value,因此在结果集中,e.companyId = c.companyId = t.Value将始终如此。

答案 1 :(得分:1)

您已经描述过传递关系:

如果e.CompanyId = t.Value和c.CompanyId = t.Value,则e.CompanyId = c.CompanyId。

由于该语句始终为true,因此查询结果中的任何行都不应该有不同的CompanyId。如果您在 t 中有重复的Value值,那么可以获得具有相同CompanyId的多个行。