繁体   English   中英

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

[英]Inner join return duplicates data which does not exist in table

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

select * 
from tblNormativiIspratnica 
inner join tblNormativiSubIspratnica on tblNormativiIspratnica.ZaklucokBroj = tblNormativiSubIspratnica.ZaklucokBroj

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM