gpt4 book ai didi

mysql - 从包含多行数据的两个表中选择不同的记录

转载 作者:行者123 更新时间:2023-11-30 23:25:08 25 4
gpt4 key购买 nike

我有两张 table

Topic
----------------------
id title
----------------------
1 Loops
2 Control Structure
3 Basics

Chapters
------------------------------------------------------
id book_id topic_id chapter_number
------------------------------------------------------
1 1 1 1
2 1 2 2
3 1 3 3
4 2 1 5
5 2 3 2
6 3 3 1

当搜索主题时,我想显示包含这些主题章节的 book_ids。具有主题 1 和 2 的 Book_id:1
主题 3 的 Book_Id:1,2,3
具有主题 1 和 3 的 BookId:1

这是我的查询:

SELECT DISTINCT chapter.book_id FROM chapter Inner Join topic ON topic.id = chapter.topic_id WHERE topic.id IN  ( '1,3');

但它返回 Book_ids of : 1 and 3 而它应该只返回 1。看起来我的查询返回并集而它应该返回一个交集。

有人可以帮我解决吗?

最佳答案

这里是 SQLFiddle demo .只需将此查询中的 '1,3' 替换为您需要的任何章节集:

select book_id from Chapters
where FIND_IN_SET(topic_id,'1,3')
group by book_id
having
count(*) =
(length('1,3')-length(replace('1,3',',',''))+1)

关于mysql - 从包含多行数据的两个表中选择不同的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13730538/

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