使用单个SQL查询连接三个表

时间:2014-09-30 21:21:58

标签: mysql sql

如果我有这三个表:

table1: id, title, content
connection: id_t1, id_t2
table2: id, title, content

在我的情况下,我只选择table1的单个行。对于此结果,table2中有多个行。两个表格的连接可以在表格“#connection;'

中找到

如何创建查询以获得此结果?

table1-title
table2-content1
table2-content2
table2-content3
table1-content

2 个答案:

答案 0 :(得分:0)

如果我理解正确,我相信你想使用带有GROUP_CONCAT功能的GROUP BY 查询看起来像这样:

SELECT table1.title, GROUP_CONCAT(table2.content) as table2.group_content, table1.content
FROM table1
JOIN connection on table1.id = id_t1
JOIN table2 on connection.id_t2 = table2.id
GROUP BY table2.content

这会为每个table1.id提供一行,多个table2.content行连接成一列(在本例中称为table2.group_content)。

答案 1 :(得分:0)

select title from table1 where title_id = 1
UNION
select t2.content 
from table2 t2, table1 t1, connection c  
where t1.title_id = 1
    and t1.title_id = c.id_t1
    and c.id_t2 = t2.title_id
UNION
select content from table1 where title_id = 1