2016-03-18 5 views
1

私が使用しているデータベースでは、次のように、各ブランチIDのコピーの枚数が「The Lost Tribe」というタイトルで表示されます。クエリ内の値を変換する

select distinct BC.branch_id, no_of_copies 
from Book_Copies BC, Book B, Library_Branch LB 
where BC.book_id = (select book_id from Book where title = 'The Lost Tribe'); 

しかし、私は彼らの枝のIDと一緒にLibrary_Branchテーブルで発見され、対応するブランチ名を、使用する必要があります。どのように変換するのか分かりませんが、どうすればいいですか?実際に可能な限りFYIあなたは、サブ選択を避けるべき構造

SELECT DISTINCT BC.branch_id, no_of_copies, LB.branch_name 
FROM Book_Copies BC 
LEFT JOIN Book B ON BC.book_id = B.book_id 
LEFT JOIN Library_Branch LB ON BC.branch_id = LB.branch_id 
WHERE B.title = 'The Lost Tribe'; 

を知らず

答えて

0

+0

D なぜそれが動作するのか完全には分かっていませんが、私は左への参加についていくつかの研究を行うべきだと思います。 – TheBandit

0

INNER JOINを試してください。 テーブル構造について私が気づいたことから、あなたは以下を使用できます。

SELECT branch_id, branch names, no_of_copies 
    FROM Library_Branch a 
    INNER JOIN Book b ON a.book_id = b.bookID 
    WHERE b.book_name = "The Lost Tribe" 

内部結合でブックテーブルと分岐テーブルを使用し、それらを外部キーと結合します。

+0

これはうまく動作しませんでしたが、ありがとう。 – TheBandit

関連する問題