3

特定の著者のすべての本について、本のテーブルからタイトルを取得し、件名のテーブルから件名を取得したい

これがテーブルの関係です

ここに画像の説明を入力してください

ここに画像の説明を入力してください

表からタイトルと件名を選択しようとしましたが、多対多の関係で機能させることができません

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

私は2つの別々のクエリを作成することを考えました。誰かがそれについて私を助けてくれるなら、私は本当にうれしいです。

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 に答える