gpt4 book ai didi

MySQL限制多对多关系中的行

转载 作者:可可西里 更新时间:2023-11-01 08:07:21 25 4
gpt4 key购买 nike

我有一个包含 3 个多对多关系表的数据库。一个是书籍,另一个是作者,第三个是他们的junction(用于连接两者)。数据库是 MySQL

一本书可以由很多作者合着,而作者又会合着很多书。

enter image description here

现在我想获得书籍(与作者一起),比如一次说 8 本书。我做了这个查询:

//first table
SELECT * FROM `books`

//join the junction
LEFT JOIN books_authors ON books.book_id = books_authors.book_id

//join the authors
LEFT JOIN authors ON books_authors.author_id = authors.author_id

//limit to 8, start at S
limit S, 8

一对一时效果很好。但是当一本书有更多作者时,比如每本书有 3 位作者,sql 结果总共会有 8 x 3 行(由于结果的二维性质)细节。但查询仍然将其剪辑为 8 - 我没有得到所有详细信息。

如何获得 8 本书的所有详细信息?

最佳答案

您可以限制子查询中的书籍数量:

select  * 
from (
select *
from books
limit 6, 7
) b
left join
ba ba
on b.book_id = ba.book_id
left join
authors a
on ba.author_id = a.author_id

关于MySQL限制多对多关系中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9238728/

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