SQL查询正在返回相同字段的多行
下面是我的代码,我试图返回SELECT中所有类别号为4的列。但是当我这样做的时候,我得到了正确的答案,但它却重复了100多次!有人知道为什么会这样吗SQL查询正在返回相同字段的多行,sql,Sql,下面是我的代码,我试图返回SELECT中所有类别号为4的列。但是当我这样做的时候,我得到了正确的答案,但它却重复了100多次!有人知道为什么会这样吗 SELECT sr.CondoID, cu.LocationNum, sr.EstHours, sr.SpentHours, o.OwnerNum, o.LastName FROM service_request sr, owner o, condo_unit cu WHERE CategoryNum = '4'; 如注释中所述,您会看到结果
SELECT sr.CondoID, cu.LocationNum, sr.EstHours, sr.SpentHours, o.OwnerNum, o.LastName
FROM service_request sr, owner o, condo_unit cu
WHERE CategoryNum = '4';
如注释中所述,您会看到结果,即from子句中所有表行之间的
交叉联接。因此您需要将它们连接起来,以获取表中的相关行
正如我在您的图片中看到的,由于缺少预期的结果,我将只使用简单的join
(如果您要求,可以更改为left join
),并将查询编写为
select sr.CondoID, cu.LocationNum, sr.EstHours, sr.SpentHours, o.OwnerNum, o.LastName
from service_request sr
join condo_unit cu
on cu.condoid = sr.condoid
join owner o
on o.ownernum = cu.ownernun
where sr.categoryNum = 4;
另外,从图像中,categoryNum
没有发送到be-be-character,因此我删除了它周围的'
。如果它是varchar
列,则可以将其放回原处。您当前正在所有3个表之间进行交叉联接,因此结果集的大小较大且出乎意料。如果您想在此处获得有关正确查询的帮助,请包括表结构。我现在已添加了表的照片。请以文本格式提供数据,或至少将其作为问题的一部分,而不是附件。抱歉,我不知道如何复制所有数据-旧样式的逗号分隔表样式已替换为正确的ANSI样式JOIN
符合ANSI-92 SQL标准(25年前)的语法,不鼓励使用