Помогите составить запрос...

braxma

Новичок
Помогите составить запрос...

Есть три таблицы

1 - таблица линейки товаров(lines)

id | title
1 | линейка1
2 | линейка2
3 | линейка3
4 | линейка4

-------------------------------------------

2 - таблица товаров (product)

id | parent_id | title
1 | 1 | товар1
2 | 1 | товар2
3 | 2 | товар3
4 | 3 | товар4

parent_id - id линейки, которому принадлежит товар

--------------------------------------------

3 - таблица возможных характеристик товара(features)

id | parent_id | feature
1 | 1 | Характеристика1
2 | 1 | Характеристика2
3 | 1 | Характеристика3
4 | 2 | Характеристика4
5 | 2 | Характеристика5
6 | 3 | Характеристика6

parent_id - id линейки, которой принадлежит характеристика
то есть у линейки с id=1 имеется три характеристики(соотвественно их может быть и больше)

--------------------------------------------

4 - таблица значений характеристик(values)

id | parent_id | parent_id2 | value
1 | 1 | 1 | 70
2 | 2 | 1 | 30
3 | 3 | 1 | 100
1 | 1 | 2 | 20
2 | 2 | 2 | 60
3 | 3 | 2 | 140

В таблице представлены харектеристики конкретных товаров
parent_id - id характеристики
parent_id2 - id товара


Необходимо извлечь все товары линейки с id=1 у которых например Характеристика1>50, Характеристика2>20, Характеристика3<150,
причем товары должет удовлетворять всем этим условиям одновременно.
 

ForJest

- свежая кровь
Три раза присоедини таблицу

SELECT
FROM product AS p
INNER JOIN values AS v1 ON v1.parent_id2 = p.id AND v1.id = 1
INNER JOIN values AS v2 ON v2.parent_id2 = p.id AND v2.id = 2
INNER JOIN values AS v3 ON v3.parent_id2 = p.id AND v3.id = 3
WHERE v1.value > 50 AND v2.value > 20 AND v3.value <150
-----------
Готовый запрос я составлять за тебя не буду, поэтому вкури в концепцию сам.
 
Сверху