SQL запрос из нескольких таблиц

224
04 декабря 2017, 14:48

Добрый день. Вопрос такой.

Есть 3 таблицы бд.

CREATE TABLE product (
`maker` varchar(10) ,
`model` varchar(10) PRIMARY KEY,
`type` varchar(10) 
);

CREATE TABLE pc (
`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY,
`model` varchar(50) ,
`price` int,
FOREIGN KEY(model) REFERENCES product(model)
);

CREATE TABLE laptop(
`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY,
`model` varchar(50),
`price` int,
FOREIGN KEY(model) REFERENCES product(model)
);

Нужно вывести номера моделей и цены всех продуктов выпущенных производителем 'A'(колонка maker в таблице product)

Answer 1

Попробую пояснить как решать, не давая ответ.

Допустим, у нас есть таблица A c полями A1, A2 и A3, а также таблицы B и C c полями B1, B2, B3 и C1, C2, С3 соответственно.

Вы умеете соединять две таблицы в запрос, допустим А и B:

SELECT
    A.A1,
    A.A2,
    A.A3,
    B.B2,
    B.B3
FROM A
INNER JOIN B on A.A1 = B.B1

или таблицы А и C:

SELECT
    A.A1,
    A.A2,
    A.A3,
    C.C2,
    C.C3
FROM A
INNER JOIN C on A.A3 = C.C1

Точно так же будет шаблон для трёх таблиц:

SELECT
    A.A1,
    A.A2,
    A.A3,
    B.B2,
    B.B3,
    C.C2,
    C.C3
FROM A
INNER JOIN B on A.A1 = B.B1
INNER JOIN C on A.A3 = C.C1
WHERE 1 = 1
AND A.A2 = 'adsf'
AND B.B2 = 'asdfasdf'
AND C.C3 = 'dsfg'

Важно обращать внимания на условия, по которым связываются таблицы, на их внешние ключи.

Попробуйте проделать по аналогии с вашими таблицами. А для начала попробуйте назвать как связаны таблицы ключами.

READ ALSO
Обновить дату в базе (mysql) через php

Обновить дату в базе (mysql) через php

Не понимаю в чем проблема, но дата никак не записывается в базуТип поля datetime

223
Улучшает ли auto increment primary key работу MySQL с таблицами?

Улучшает ли auto increment primary key работу MySQL с таблицами?

ЗдравствуйтеНедавно узнал от одного человека, что использование auto increment primary key улучшает работу MySQL с таблицами, это так? Или правильным вариантом...

173
panic: Error 1054: Unknown column 'helloman' in 'field list'

panic: Error 1054: Unknown column 'helloman' in 'field list'

Подключаюсь к БД и пытаюсь внести значения в таблицу bot_api значения 1337, helloman, DavidКод:

197
WPF как “перевернуть” DataGrid

WPF как “перевернуть” DataGrid

Есть DataGrid, обычно он заполнять построчно, а как заполнять его по стобцу? Тоесть не так заполнять:

157