MySQL Left Outer仅在右侧加入一次

时间:2016-01-12 16:10:45

标签: mysql join

我正在进行左外连接,但我只想让它从右表中拉出一次匹配。

例如,我想查询requirements表,左外连接activity表,但只匹配第一个结果,右边没有重复。

示例:

需求表

requirement_number   requirement_type 

1                    class   
2                    class  
3                    project  
4                    project  
5                    cert  
6                    interview

活动表

activity_number     activity_type     activity_name

1                   class             class1  
2                   class             class2  
3                   class             class3  
4                   project           project1  
5                   project           project2  
6                   project           project3  
7                   cert              cert1  
8                   cert              cert2  
9                   cert              cert3  

结果:

requirement_number   requirement_type   activity_type   activity_name
1                    class              class           class1
2                    class              class           class2
3                    project            project         project1
4                    project            project         project2
5                    cert               cert            cert1
6                    interview          interview       NULL

2 个答案:

答案 0 :(得分:0)

尝试:

GROUP BY requirement_number 

答案 1 :(得分:0)

select 
r.requirement_number,
r.requirement_type,
a.activity_type,
min(a.activity_name)
from  requirements r 
left join activity a
  on r.requirement_type  =  a.activity_type
group by r.requirement_number,
r.requirement_type,
a.activity_type

这是假设您想要“最低”的activity_name。如果你想要第一个实例,你必须在结果集中包含activity_number,并在其上使用MIN函数。

这是一个SQLFiddle来演示......