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';
解决方案
正如评论中所说,您看到的结果是cross join
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;
PS 从图像中看,categoryNum
它不是角色,所以我把''
它周围的东西去掉了。如果它是一个varchar
列,你可以把它放回去。
推荐阅读
- php - Is it possible to replace a word before a phrase using regular expression in php?
- javascript - Javascript includes() is not a function
- json - Flutter 构建多张卡片
- java - 我在下面收到空指针异常
- php - php从数组中一一获取值
- python - 如果它们没有一个接一个地去,则更改重复的列表项
- udp - MQTT-SN 有效负载大小
- lync - 如何使用 UCMA 可信应用程序监控域中所有用户的通话活动并加入通话
- python - 将 paho-mqtt 与 PyQt 一起使用
- angular - 单元测试 fromEvent 可使用 withLatestFrom 观察