内部联接返回重复表中不存在的数据

时间:2015-11-15 10:56:02

标签: sql sql-server

当我执行它时,它会返回超过一百万行,在第一个表中我有315 000行,在第二个表中大约有14 000行。我该怎么做才能从两个表中获取所有行?此外,如果我不停止服务器,它会在列出未激活的行时崩溃。

curl 127.0.0.1

1 个答案:

答案 0 :(得分:0)

如果第一个表有315000行,第二个表有14000行,那么您使用的字段不构成良好的主键 - 外键关系的一部分,结果您得到的是笛卡尔积重复项。如果要获得定义明确的结果,则必须具有用于这些目的的明确定义的字段。顺便说一句,照顾你的服务器故障等,如果你不知道你在做什么,不要尝试获取大型结果集的查询。通过在运行大型结果集之前编写具有更小特定条件的简单查询来快速查找基础知识并理解设计。 如果你没有服务器性能和故障的问题,我会建议DISTINCT作为获得唯一行的(差)快速解决方案,但请记住,DISTINCT查询有时会带来性能损失。