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