如何连接具有一对多关系的两个表?

时间:2019-04-03 07:49:47

标签: mysql sql

我有一个用户表和另一个user_project表,其中包含用户的主键作为其外键,并且用户可以有一个或多个项目。 我需要加入这些表以获得特定用户的逗号分隔项目名称。

我已经尝试过类似的事情-

select group_concat(epi.project_name)
from user u
     inner join employee_projects_info epi on epi.employee_id= u.id
group by epi.project_name

但是它并没有向我提供用户明智的项目列表。

3 个答案:

答案 0 :(得分:0)

epi.project_name中删除group by,在group by中添加epi.employee_id

select epi.employee_id,group_concat(epi.project_name) 
from user u inner join employee_projects_info epi 
on epi.employee_id= u.id 
group by epi.employee_id

答案 1 :(得分:0)

按ID分组并合并所有项目名称:

 select epi.employee_id, group_concat(epi.project_name)
from user u    inner join employee_projects_info epi on epi.employee_id= u.id
group by epi.employee_id

答案 2 :(得分:0)

首先,尝试让所有用户以及他们的项目。您可以通过以下方式获取数据

select u.id,epi.id,epi.project_name
from users u
inner join employee_projects_info epi on epi.employee_id = u.id

要获取每个用户用逗号分隔的项目名称,您必须在上述查询中使用group by。您可以在其他人的答案中找到该查询。