sql – 如何将此LEFT JOIN返回的行数限制为一个?
发布时间:2020-12-12 08:59:01 所属栏目:MsSql教程 来源:网络整理
导读:所以我认为我已经看到了解决方案,但它们都是非常复杂的查询.我在oracle 11g中作为参考. 我所拥有的是一个简单的一对多联接,但是我不需要那么多.我只是希望左表(一个)只加入满足连接条件的任何1行…不是很多行. 我需要这样做,因为查询是汇总的,因此如果我做正
所以我认为我已经看到了解决方案,但它们都是非常复杂的查询.我在oracle 11g中作为参考.
我所拥有的是一个简单的一对多联接,但是我不需要那么多.我只是希望左表(一个)只加入满足连接条件的任何1行…不是很多行. 我需要这样做,因为查询是汇总的,因此如果我做正常的左连接,我得到5行,我应该得到1. 所以示例数据如下: TABLE 1: ------------- TICKET_ID ASSIGNMENT 5 team1 6 team2 TABLE 2: ------------- MANAGER_NAME ASSIGNMENT_GROUP USER joe team1 sally joe team1 stephen joe team1 louis harry team2 ted harry team2 thelma 我需要做的是在ASSIGNMENT = ASSIGNMENT_GROUP上加入这两个表,但只返回1行. 当我做左连接时,我得到三行返回beaucse,这是hte left join的本质 解决方法如果oracle支持行号(分区依据),则可以创建一个子查询,选择行等于1的位置.SELECT * FROM table1 LEFT JOIN (SELECT * FROM (SELECT *,ROW_NUMBER() OVER(PARTITION BY assignmentgroup ORDER BY assignmentgroup) AS Seq FROM table2) a WHERE Seq = 1) v ON assignmet = v.assignmentgroup (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |