gpt4 book ai didi

Sqlite 连接表并选择列包含的位置

转载 作者:行者123 更新时间:2023-12-03 19:44:20 25 4
gpt4 key购买 nike

我有 3 张 table

**Posts**

id post_title
1 First_Post
2 Second_Post
3 Third_Post


**Tags**

id tag_name
1 Published
2 Favorites
3 Deleted


**PostTagRelatives**

id post_id tag_id
1 1 1
2 1 2
3 2 3

我使用查询
SELECT p.*, GROUP_CONCAT(PostTagRel.tag_id) AS tags FROM Posts p left
join PostTagRelatives PostTagRel on PostTagRel.post_id = p.id GROUP BY
p.id

它工作正常。

我需要添加到 sql 查询以仅获取包含“已发布”和“收藏夹”标签的帖子。我尝试在 GROUP BY 之前插入一些条件,例如
WHERE (',' || tags || ',') LIKE '%,1,2,%'

但这没有帮助。

最佳答案

您可以尝试使用子选择来查找两者。我假设一个 PK 并且一个帖子不能多次具有相同的标签。

SELECT p.*, GROUP_CONCAT(PostTagRel.tag_id) AS tags 
FROM Posts p
left join PostTagRelatives PostTagRel on PostTagRel.post_id = p.id
WHERE 2 = ( SELECT COUNT(*)
FROM PostTagRelatives PTR
INNER JOIN Tags T ON (T.tag_id = PTR.tag_id AND PTR.post_id = p.post_id )
WHERE T.tag_name IN ('Published','Favorites') )
GROUP BY p.id

关于Sqlite 连接表并选择列包含的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23873500/

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