SQL Foreign key Какой писать запрос
Подскажите пожалуйста какой писать запрос SQL для того что бы дернуть данные из второй таблицы ?
create table person (
id int primary key auto_increment,
name varchar(20)
);
create table orders(
id int primary key auto_increment,
name varchar(20)not null,
price int not null,
foreign key(id) references person(id)
);
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
Кривая структура. Должно быть типа
CREATE TABLE person (
id_person INT AUTO_INCREMENT PRIMARY KEY,
person_name VARCHAR(255) NOT NULL
);
CREATE TABLE `order` (
id_order INT AUTO_INCREMENT PRIMARY KEY,
order_name VARCHAR(255) NOT NULL,
price INT CHECK (price > 0),
amount INT CHECK (amount > 0),
id_person INT NOT NULL,
FOREIGN KEY (id_person) REFERENCES person (id_person)
);
Получение заказов для заданного чела:
SELECT `order`.*
FROM person
LEFT JOIN `order` USING (id_person)
WHERE person.person_name = 'Пупкин Василий Иванович';
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=1af9fba4927663984915dfe98000ca39