mysql - 从多对多关系中获取数据

标签 mysql database many-to-many

我想从书表中获取某个作者所有书籍的标题和主题表中的主题名称

这是表的关系

enter image description here

enter image description here

我试图从表格中选择标题和主题,但我无法让它处理多对多关系

SELECT book_title,subject_name FROM book,subject WHERE $subject_ID = subject_ID INNER JOIN book_author ON author_ID = '$author_ID'

我想提出两个单独的问题,如果有人能帮助我,我会很高兴。

最佳答案

试试这个:

SELECT book_title, subject_name
FROM Book
INNER JOIN Book_Author ON Book.book_ISBN = Book_Author.book_ISBN
INNER JOIN Author ON Book_Author.author_ID = Author.author_ID
INNER JOIN Subject ON Subject.subject_ID = Book.subject_ID
WHERE author_lastname = [whatever];

发布模型的工作做得很好 :)

根据具体需要进行编辑:

SELECT book_title, subject_name
FROM Book
INNER JOIN Book_Author ON Book.book_ISBN = Book_Author.book_ISBN
INNER JOIN Subject ON Subject.subject_ID = Book.subject_ID
WHERE author_ID = '11';

顺便说一下,您有一个 “Column 'author_ID' in where clause is ambiguous” 因为该列同时出现在 Book_Author 和 Author 中。这就是为什么你必须在它前面加上表名:)

关于mysql - 从多对多关系中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11064275/

相关文章:

Java MySQLexecuteUpdate语法错误

php - 如何通过php检查mysql表是否可访问

PHP 用字母搜索

python - 如何避免在 SQLAlchemy - python 的多对多关系表中添加重复项?

java - 以多对多关系插入连接表

mysql - 如何从不同的列表中识别使用哪个 id?

php - CakePHP HABTM 条件

php - 可打印的 PHP 变量中的 MySQL 数据输出

javascript - 使用javascript读写sqlite数据库

c# - 使用 GraphDiff 更新多对多关系会导致错误