所以我想我已经看到了解决方案,但是它们都是非常复杂的查询。我在oracle 11g中供参考。
我拥有的是简单的一对多连接,效果很好,但是我不需要很多。我只希望左边的表(一个)只连接满足连接条件的任何1行...没有多少行。
我需要这样做是因为查询是在COUNTS的汇总中进行的,因此,如果我进行普通的左联接,我将获得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,这是左连接的本质
最佳答案
如果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