转换查询中的值

时间:2016-03-18 20:25:01

标签: mysql

在我正在使用的数据库中,以下内容将为我提供每个分支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');

但是我需要使用相应的分支名称,它们可以在Library_Branch表中找到它们的分支ID。我不知道如何转换它,我该怎么做?

2 个答案:

答案 0 :(得分:0)

没有真正了解结构

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';

仅供参考,您应尽可能避免使用子选项。

答案 1 :(得分: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"

在内部联接中使用book表和分支表,并使用外键将它们连接起来。