我目前有两个表,如下面
1。 tbl_forums
struct sigaction sa;
...
sigaction(SIGINT, &sa, NULL);
uid catid tags
2。 tbl_forum_tags
1 3 1,2,,3
2 6 1,2,,3
3 5 8
id tag isactive
我想检索以下格式的数据
1 Tag 1 y
2 Tag 2 y
3 Tag 3 y
4 kuldip y
5 bhatt y
6 y
7 y
8 y
uid tag
感谢任何帮助
答案 0 :(得分:0)
使用函数FIND_IN_SET()匹配JOIN:
SELECT f.uid, GROUP_CONCAT(t.tag) tag
FROM tbl_forums f, tbl_forum_tags t
WHERE FIND_IN_SET(t.id, f.tags) <> 0
GROUP BY f.uid;
答案 1 :(得分:0)
你需要一些替换和连接:
SELECT * FROM tbl_forums
LEFT JOIN tbl_forum_tags ON CONCAT(',', tags, ',') LIKE CONCAT('%,', REPLACE(tag,'Tag ',''), ',%')
答案 2 :(得分:-3)
您可以使用FIND_IN_SET()&gt; 0和GROUP BY匹配它们:
SELECT
t.uid,
group_concat(tt.tag) AS tags
FROM
tbl_forums t,
tbl_forum_tags tt
WHERE
FIND_IN_SET(tt.id, t.tags) > 0
GROUP BY
t.uid
HAVING tags IS NOT NULL
如果您只想要具有有效标签的ID,请在末尾添加NOT NULL:
{{1}}