Как сделать выборку комплекта по характеристике входящих в него товаров?

Shitbox2
Дата: 03.02.2013 19:03:54
MySQL/PHP

Есть таблица с товарами (Products). У товара есть атрибут: размер (size). Товар содержит id комплекта (kit_id)
Есть таблица комплектов (Kits). Каждый комплект может состоять из нескольких товаров, причем одни и те же товары могут быть в разных комплектах.

Как написать запрос, который ищет все товары с размером 'X', и выводит id всех комплектов, которые содержат такие товары?
Разумеется атрибутов больше, пример упрощен.

Стоит ли вводить в таблицу комплектов поле с id-шниками товаров?
miksoft
Дата: 03.02.2013 19:13:09
Shitbox2
Стоит ли вводить в таблицу комплектов поле с id-шниками товаров?
Точнее, таблицу связей комлект-товар.
Shitbox2
Дата: 03.02.2013 20:30:41
Или так. Но не хотелось бы плодить таблицы. По сути, нужно вывести из таблицы товаров kit_id у товаров с нужным размером, удалив дубликаты, и сразу же по приджойнить таблицу комплектов и по найденным айдишникам вывести уже инфу по каждому комплекту. Как это сделать одним запросом только...
miksoft
Дата: 03.02.2013 20:52:20
Не "или так", а только так. Остальные решения, которые приходят в голову новичкам чреваты проблемами.
А запрос будет примерно такой:
SELECT products.*, products2kits.kit_id
FROM products, products2kits
WHERE products.id=products2kits.products_id
AND products.size='X'

А по второму вопросу такой:
SELECT products.*, kits.*
FROM products, products2kits, kits
WHERE products.id=products2kits.products_id
AND products.size='X'
and kits.id=products2kits.kit_id