gpt4 book ai didi

sql - 在多对多关系中,如何选择集体拥有的记录

转载 作者:行者123 更新时间:2023-11-29 14:58:16 26 4
gpt4 key购买 nike

我确信我在这里缺少正确的术语,但对于这个示例多对多关系:

A user has many books. A book is owned by many users.

查看两个用户拥有的所有图书的最佳方式是什么?

现在我只是使用这个:

SELECT * FROM books 
WHERE book_id IN
(SELECT book_id FROM user_has_book WHERE user_id = 'joe' AND book_id IN
(SELECT book_id FROM user_has_book WHERE user_id = 'frank'))

我知道这不是最好的方法 - 对吗?我正在使用 MySQL

最佳答案

SELECT b.*
FROM books b
INNER JOIN
(SELECT book_id, COUNT(*) as cnt
FROM user_has_book
WHERE user_id IN ('Frank', 'Joe')
GROUP BY book_id
HAVING cnt=2)x ON (x.book_id = b.book_id)

关于sql - 在多对多关系中,如何选择集体拥有的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3946307/

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