вопросы присоединения к базе данных - PullRequest
1 голос
/ 24 июня 2011

есть две таблицы в дБ

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-инструкцию для вывода книги таким способом заглавие author1 author2 издатель, год.

Логика выбирает две записи из таблицы Author в соответствии с isbn, затем объединяется с записью в Book и выводит ее. Я думаю, что мы можем сделать это в MySQL?

СПАСИБО.

Ответы [ 2 ]

2 голосов
/ 24 июня 2011

Попробуйте 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
0 голосов
/ 29 июня 2011

В моем решении есть два подзапроса: SELECT Book.title, (SELECT Author.name ОТ автора WHERE Author.isbn = Book.isbn AND Author.rank = '1') КАК author1, (ВЫБРАТЬ Author.name ОТAuthor WHERE Author.isbn = Book.isbn AND Author.rank = '2') AS author2 FROM Book;

Есть ли способ улучшить производительность?использовать, присоединиться, процедура или другой способ?спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...