数据库加入问题

时间:2011-06-24 15:24:09

标签: java mysql database

db中有两个表

Book{
isbn integer, //primary key
title char(50),
publisher char(30),
year integer
}

Author{
isbn integer,  //foreign key 
name String,
rank integer,  // indicate whether it is author1, author2, author3,...,authorn
}

以这种方式将sql语句写入输出书 标题   作者1   author2 出版商,年。

逻辑是根据isbn从Author表中选择两个记录然后结合到Book中的记录并输出它。我想我们可以在MySQL中做到这一点吗?

感谢。

2 个答案:

答案 0 :(得分:2)

尝试GROUP_CONCAT

SELECT b.title, group_concat(a.name separator ',')
FROM book b join author a on b.isbn = a.isbn
group by b.title

答案 1 :(得分:0)

我的解决方案中有两个子查询:SELECT Book.title,(SELECT Author.name FROM Author WHERE Author.isbn = Book.isbn AND Author.rank ='1')AS author1,(SELECT Author.name FROM作者WHERE Author.isbn = Book.isbn AND Author.rank ='2')AS author2 FROM Book;

有什么办法可以提高性能吗?使用,加入,程序或其他方式?感谢