@IceofHeart

Как составить сложный MySQL запрос?

Добрый день.

Нужно получит табличку следующими столбцами:
id name brand параметр1 параметр 2 и т.д.

Что имеем:

Таблицы:

category
hars
hars_values
images
pref
product


Данные основные хранятся в 4 таблицах

product
id	int(11)
cat_id	int(11)
name	varchar(255)
image	text
price	text
brand	text
image_type	int(11)
url	varchar(255)


hars
id	int(11)
name	text
cat_id	int(11)


hars_values
har_id	int(11)
prod_id	int(11)
har_value	longtext


Внутри табличек след информация:

SELECT * FROM product LIMIT 5
id cat_id name image price brand
1 1 [->] Yamaha NS-555 138937562078518.jpg 1079 Yamaha
2 1 [->] Yamaha NS-50F 138937562630442.jpg 4230 Yamaha


SELECT * FROM `hars` LIMIT 9
id name cat_id
1 Тип 1
2 Акустическое излучение 1
3 Назначение 1
4 Состав комплекта 1
5 Количество полос 1
6 Мощность 1
7 Максимальная мощность 1
8 Раздельное подключение НЧ и ВЧ (Bi-wiring) 1
9 Чувствительность 1


SELECT * FROM `hars_values` LIMIT 10;
har_id prod_id har_value
1 1 напольная, пассивная, фазоинверторного типа
2 1 монополярная
3 1 фронтальный громкоговоритель
4 1 2 громкоговорителя
5 1 3
6 1 100 Вт
7 1 250 Вт
8 1 есть
9 1 88 дБ
10 1 6 Ом
  • Вопрос задан
  • 2867 просмотров
Решения вопроса 1
Anonym
@Anonym
Программирую немного )
Гуглите JOIN, в вашем случае LEFT JOIN
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Anonym
@Anonym
Программирую немного )
Выбираем продукт:
SELECT p.id, p.cat_id, p.name, p.image, p.price, p.brand, p.image_type, p.url FROM product p
LEFT JOIN har_values v ON (v.prod_id = p.id)
WHERE p.id = 1 LIMIT 1;

Выбираем заголовки:
SELECT id, name FROM hars WHERE id IN (1, 2, 3, 4, 5, 6, 7, 8, 9);
Ответ написан
Anonym
@Anonym
Программирую немного )
Так нельзя. Вы не сможете в результате получить
id, cat_id, name, image, price, brand, Тип, Акустическое излучение, Назначение, Состав комплекта, Количество полос, Мощность, Максимальная мощность

Придется получить
id, cat_id, name, image, price, brand, val1, val2, val3, val4, val5, val6, val7

а заголовки выбрать отдельно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы