SQL查询返回相同字段的多行

时间:2020-09-20 05:07:42

标签: 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';

Service_request table

Condo_Unit table

Owner table

1 个答案:

答案 0 :(得分:0)

如注释中所述,您看到的结果是from子句中所有表行之间的cross join。因此,您需要将它们连接起来以获取表中的相关行,

正如我在您的图像中看到的,并且由于缺少预期的结果,因此我只使用简单的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;

P.S。 categoryNum并未从图像中发送出来,因此我删除了周围的''。如果它是varchar列,则可以放回去。

相关问题