Связь таблиц или запрос - 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
. - Запуск запроса на выборку данных.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д