MySQL使用GROUP_CONCAT从多个表加入

时间:2014-05-08 15:51:25

标签: mysql group-concat

我正在尝试从3个单独的表中选择数据,其中2个表包含多行数据。我正在使用的sql查询就是这个,但我遇到的是,当我运行它时,如果taskdependements或tasksdependencies的结果为零,则整个任务都没有显示。

SELECT t.*, GROUP_CONCAT(a.DependenciesId) as DiesId, GROUP_CONCAT(b.DependeesId) as DeesId FROM tasks t JOIN tasksdependencies a ON a.TasksId=t.TasksId JOIN taskdependees b ON b.TasksId=t.TasksId GROUP BY t.TasksId

我在这个查询中做错了什么?

1 个答案:

答案 0 :(得分:2)

使用LEFT JOIN,如果两个表中都存在关联,则内部联接将给出行,而左表将返回左表中的行,即使它们没有关联

SELECT t.*, GROUP_CONCAT(a.DependenciesId) as DiesId,
 GROUP_CONCAT(b.DependeesId) as DeesId 
FROM tasks t
LEFT JOIN tasksdependencies a ON a.TasksId=t.TasksId
LEFT JOIN taskdependees b ON b.TasksId=t.TasksId 
GROUP BY t.TasksId