求一种特殊多表连接查询sql语句

cnzxy 2011-11-26 11:56:24
mysql> SELECT * FROM content;
+----+------+
| id | tags |
+----+------+
| 1 | 1,2 |
| 2 | 2,3 |
+----+------+


mysql> SELECT * FROM tag;
+----+-------+
| id | name |
+----+-------+
| 1 | php |
| 2 | mysql |
| 3 | java |

有上面两个表,查content表的时候,想得到每条记录中tags用逗号分割的每个tag名称,怎么做?
也就是说有没有一种查询语句可以得到下面的结果:
| id | tags_name |
+----+------+
| 1 | php, mysql |
| 2 | mysql, java |
+----+------+
...全文
61 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nicenight 2011-11-27
  • 打赏
  • 举报
回复
看了版主的,才发现自己多此一举了,中间表就直接可以得结果的……
    select content.id, group_concat(tag.name)
from content left join tag
on find_in_set(tag.id, content.tags)
group by content.id
ACMAIN_CHM 2011-11-27
  • 打赏
  • 举报
回复
select c.id,group_concat(t.name )
from content c ,tag t
where find_in_set(t.id, c.tags)
group by c.id
nicenight 2011-11-27
  • 打赏
  • 举报
回复
select id, group_concat(name) as tags_name
from
(
select content.id, tag.name
from content left join tag
on find_in_set(tag.id, content.tags)
order by tag.id
) as t
group by id
fangzhaoguo 2011-11-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 cnzxy 的回复:]
mysql> SELECT * FROM content;
+----+------+
| id | tags |
+----+------+
| 1 | 1,2 |
| 2 | 2,3 |
+----+------+


mysql> SELECT * FROM tag;
+----+-------+
| id | name |
+----+-------+
……
[/Quote]

貌似这个得知道你的数据是怎么存储的呀

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧