NK
Size: a a a
NK
A
A
A
NK
A
A
NK
A
A
A
СК
items, и есть таблица items_meta с колонками item_id, key, value. надо выбрать такие items, которые имеют записи в items_meta, например что для записи существует meta key=key1 and value=value1 и существует запись key=key2 and value=value2 (обязательно надо несколько условий)SELECT ...
FROM
...
items
JOIN (
SELECT
item_id,
GROUP_CONCAT(CONCAT_WS('=', key, value) SEPARATOR ';')
FROM items_meta
) AS grouped_meta
ON
items.id = item_id
AND LOCATE('key1=value1', grouped_meta)
AND LOCATE('key2=value2', grouped_meta)NK
СК
A
SELECT ...
FROM
...
items
JOIN (
SELECT
item_id,
GROUP_CONCAT(CONCAT_WS('=', key, value) SEPARATOR ';')
FROM items_meta
) AS grouped_meta
ON
items.id = item_id
AND LOCATE('key1=value1', grouped_meta)
AND LOCATE('key2=value2', grouped_meta)NK
SELECT ...
FROM
...
items
JOIN (
SELECT
item_id,
GROUP_CONCAT(CONCAT_WS('=', key, value) SEPARATOR ';')
FROM items_meta
) AS grouped_meta
ON
items.id = item_id
AND LOCATE('key1=value1', grouped_meta)
AND LOCATE('key2=value2', grouped_meta)A
СК
LOCATE '%...%', только быстрее по бенчмаркамСК
A
key=key1 and value=value1 и существует запись key=key2 and value=value2