Связь таблиц или запрос - MySQL
Формулировка задачи:
Доброго времени суток.
Запутался в связях таблиц и запросах. Необходимо правильно создать таблицу или правильно построить запрос, не пойму.
Есть таблица книги (book) с множеством свойств (автор, год, цена...) и допустим таблица автор (author). Понятное дело для чего это делает, но как это правильно организовать чтобы в последствии я мог вывести полную информацию о нужной книге, сделать нужный мне запрос и вывести нужные данные.
Что-то такое пробовал, но нужного результата так и не достиг.
"SELECT author.name, book.name, book.author FROM author INNER JOIN book ON book.author = author.id".
Решение задачи: «Связь таблиц или запрос»
textual
Листинг программы
use test; #------------------------ create table author ( a_Id int NOT NULL AUTO_INCREMENT, a_Name varchar(40) NOT NULL, PRIMARY KEY (a_Id) ); #------------------------------- create table book ( b_Id int NOT NULL AUTO_INCREMENT, b_Name varchar(40) NOT NULL, author_id int, primary key(b_Id), constraint FK_book foreign key(author_id) references author(a_Id) on delete cascade ); #---------------------------------- SELECT A.a_Id, A.a_name, B.b_name FROM author A INNER JOIN book B ON A.a_Id=B.author_id ORDER BY 1 ASC
Объяснение кода листинга программы
- Создание таблицы
authorс полямиa_Idиa_Name. - Создание таблицы
bookс полямиb_Id,b_Nameиauthor_id. - Создание связи между таблицами
authorиbookс помощью внешнего ключа. - Определение запроса на выборку данных из таблиц
authorиbook. - Использование оператора INNER JOIN для объединения данных из таблиц.
- Указание полей, которые необходимо выбрать из таблиц
authorиbook. - Указание порядка сортировки результатов запроса по полю
a_Id. - Запуск запроса на выборку данных.