Sql 语句返回的行数或行数不正确

Sql 语句返回的行数或行数不正确,sql,Sql,为什么第一个语句不返回第二个语句的编号 select random_selection.randnum, random_selection.createddate, random_selection.ozip3, random_selection.boxid, random_selection.boxaddr, random_selection.locdesc, random_selection.loccity, random_selectio

为什么第一个语句不返回第二个语句的编号

select random_selection.randnum,
   random_selection.createddate,
   random_selection.ozip3, 
   random_selection.boxid, 
   random_selection.boxaddr, 
   random_selection.locdesc, 
   random_selection.loccity, 
   random_selection.lastmf,
   random_selection.lastsat,
   random_selection.boxtype,
   random_selection.svcclas,
   random_selection.dropzip5,
   dropper_city_brk_2.dropper_id
from random_selection, dropper_city_brk_2
where random_selection.ozip3 = dropper_city_brk_2.zip3
and dropper_city_brk_2.dropper_id <> 10002
and random_selection.dropper_id is null
order by dropper_id;

您的查询不相同,因此您的记录计数也不相同。第一个查询连接两个表,第二个查询只获取一个表的记录计数。另外,第一个查询中的WHERE子句不在第二个查询中

如果希望第二个查询返回相同数量的记录,则必须使用与第一个查询相同的表和where子句

select count(*) 
from random_selection, dropper_city_brk_2
where random_selection.ozip3 = dropper_city_brk_2.zip3
and dropper_city_brk_2.dropper_id <> 10002
and random_selection.dropper_id is null
编辑:


下面是一个可能有帮助的参考。

您的意思是为什么第二个查询不返回第一个查询给定的行数?如果是这样,那么可能是因为第一个查询中的交叉连接和额外的where子句


如果出于某种原因,您认为这些外观完全不同的查询应该产生相同数量的行,那么您必须告诉我们您的数据是如何构造的。

从技术上讲,它们可能不一样,也可能不一样。但是您有一个查询与一个表连接,而第二个查询则不是。这是一个很大的区别。第二个查询应该返回第一个查询中的数字或行,我只想将dropper_city_brk_2.dropper_id添加到结果中,其中random_selection.ozip3=dropper_city_brk_2。zip3@Mike第一个和第二个查询结构完全不同。您正在使用不同的表和where子句。@Mike我认为您需要编辑您的帖子并添加一些示例数据。在这之前和之后发布一些您想要的样本数据会有所帮助。我同意我们可能需要一些数据。select*from random_selection和random_selection。dropper_id为空;我只是想把dropper_city_brk_2.dropper_id添加到结果中,公共字段是random_selection.ozip3和dropper_city_brk_w.zip3在解释表的结构之前,所有这些都是非常棒的。有哪些栏目?这些列之间有什么关系?有主键吗?外键?其他限制?
select count(*) 
from random_selection, dropper_city_brk_2
where random_selection.ozip3 = dropper_city_brk_2.zip3
and dropper_city_brk_2.dropper_id <> 10002
and random_selection.dropper_id is null
select count(*) 
from random_selection 
INNER JOIN dropper_city_brk_2
  ON random_selection.ozip3 = dropper_city_brk_2.zip3
WHERE dropper_city_brk_2.dropper_id <> 10002
  and random_selection.dropper_id is null