У меня есть таблица продуктов с каким-то дополнительным ключом, значениями, используемыми для аналитики и тому подобным. Моя проблема в том, что если найти продукт с указанным ключом легко, гораздо сложнее найти тот, который без ключа. Давайте порежем разговор и покажем код.
SELECT products.*
FROM products
JOIN metas ON products.id = metas.product_id
WHERE
metas.key = 'mykey' AND
metas.value = '1'
Я получу все продукты с указанным ключом mykey и значением 1
(1 в примере ниже).
Теперь я хотел бы получить все продукты без набора ключа mykey (2 в примере ниже). В таблице метасов нет элементов, если ключ не установлен.
+-------------+ +----------------------------+
| products | | metas |
+=============+ +============+=======+=======+
|id | | product_id | key | value |
+-------------+ +------------+-------+-------+
| 1 | | 1 | mykey | 1 |
| 2 | | 1 | foo | bar |
+-------------+ +------------+-------+-------+
Дополнительные очки, если в процессе нет повреждений <1016 *. </p>