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中做到这一点吗?
感谢。
答案 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;
有什么办法可以提高性能吗?使用,加入,程序或其他方式?感谢