gpt4 book ai didi

mysql - 如何获取MySql相关帖子?

转载 作者:行者123 更新时间:2023-11-29 21:41:44 26 4
gpt4 key购买 nike

我正在尝试根据标签获取相关帖子

例如我有这样的表格

------------------------
post_id | term_id |
-----------------------
11 | 3 |
11 | 7 |
11 | 9 |
14 | 9 |
14 | 1 |
15 | 2 |
16 | 3 |
16 | 4 |
16 | 8 |
16 | 2 |
18 | 3 |
18 | 4 |
18 | 5 |
19 | 4 |
19 | 7 |
...etc.,,
-----------------------

在上表中,post_id 11 有 3 term_id 3,7,9 所以现在我需要检查同一个表并选择具有相同 term_id 的其他帖子.. post_id 16 , 18 有 term_id 3 ,然后 post_id 19 有 7 term_id 但 term_id 9 不匹配,所以我必须显示另一列作为相关帖子 id 16,18,19像这样的东西

帖子 ID 14 的术语 ID 为 9 和 1,但其他帖子没有 9 和 1,因此该帖子没有任何相关帖子

------------------------------------------
post_id | term_id | related_post_id |
------------------------------------------
11 | 3,7,9 | 16,18,19
14 | 9,1 | null
15 | 2 | 16
16 | 3,4,8,2 | 11,15,18,19
18 | 3,4,5 | 11,16,19
19 | 4,7 | 11,16,18
...etc.,,
------------------------

请有人帮助解决这项任务。

最佳答案

好的..你可以使用这个group_concat函数...但是大小有1024字节的限制..这可以工作。否则..您将在 SP 中查看复杂的 SQL 来构建答案

select 
tmp1.post_id,
myterm_id_list,
group_concat(distinct t2.post_id separator ',') from

(SELECT
distinct t1.post_id,
GROUP_CONCAT(distinct t1.term_id SEPARATOR ',') as myterm_id_list
FROM test.tablename t1
left join test.tablename t2 on
t2.post_id= t1.post_id
GROUP BY t1.post_id
) as tmp1

left join test.tablename t2 on
t2.term_id in (tmp1.myterm_id_list)
group by
tmp1.post_id,
myterm_id_list

关于mysql - 如何获取MySql相关帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34438607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com