mysql - SQL 选择超过 1 个联结点的位置

标签 mysql sql mariadb

我在书籍和作者之间建立了多对多关系。

我怎样才能得到所有不止一个作者的书? (在下面的示例数据库中,这将为 0)

书籍表:

+--------+------------------+
| BookId |       Book       |
+--------+------------------+
|      1 | Wizard of Oz     |
|      2 | Huckleberry Finn |
+--------+------------------+

作者表:

+----------+------------------+
| AuthorId |      Author      |
+----------+------------------+
|        1 | Mark Twain       |
|        2 | Lyman Frank Baum |
+----------+------------------+

联结表:

+--------+----------+
| BookId | AuthorId |
+--------+----------+
|      1 |        2 |
|      2 |        1 |
+--------+----------+

最佳答案

你可以通过计数来使用分组

select books.* from  books
inner join  junction  on books.id  = junction.bookid 
group by bookId 
having count(distinct AuthorId ) > 1

关于mysql - SQL 选择超过 1 个联结点的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59019796/

相关文章:

mysql - 索引的部分唯一性

php - 在另一个sql查询中使用查询结果

mysql - 如何将所有数据库从INNODB迁移到MARIADB?

mysql - 玛丽亚数据库。使用事务回滚而不锁定表

mysql - 同一张表上触发插入

mysql - SQL从n组中获得均匀分布 - 获取随机项目

sql - Oracle自动并行度的原因?

java - Spring 的 ScriptUtils 忽略转储中包含注释的代码

mysql - 如何在分组之前排序(mysql、mariadb)

mysql - 为什么 MySql DATETIME 占用 8 个字节而不是 6 个字节?