3

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

这是表格关系

在此处输入图像描述

在此处输入图像描述

我试图从表格中选择标题和主题,但我无法让它与多对多关系一起使用

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

我想过做两个单独的查询,如果有人可以帮助我,我会很高兴。

4

1 回答 1

7

试试这个:

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 中。这就是为什么你必须在它前面加上表名:)

于 2012-06-16T14:36:29.710 回答