У меня есть таблица, в которой хранится куча объектов.Каждый объект может иметь много цветов, которые хранятся в нормализованной таблице, связанной с object_id.
Если я пойду
SELECT `object_name` FROM `objects`
LEFT JOIN `object_color` USING `object_id`
WHERE `object_color` IN ('red', 'blue');
Тогда я получу объекты, которые «красные» ИЛИ «синий».Мне нужно получить все объекты, которые «красные» И «синие».Если я пойду:
SELECT `object_name` FROM `objects`
LEFT JOIN `object_color` USING `object_id`
WHERE `object_color` = 'red' AND `object_color` = 'blue';
Тогда я ничего не получу, так как в каждой строке есть только один object_color, и он не может быть и тем и другим.Кроме того, на самом деле, цвета идентификаторы с именами в другой таблице.Я здесь все упростил ради вопроса.
Мне нужно иметь возможность искать неограниченное количество цветов.
Спасибо
РЕДАКТИРОВАТЬ:
object_color находится только в таблице object_color.
И любой объект будет иметь один единственный цвет.