Нужна помощь с sql запросом.

Рейтинг: -1Ответов: 2Опубликовано: 25.10.2014

Есть таблица (wp_postmeta), структура такая:

id post_id   key            value
1    11    fromcity_1       Москва
2    11    fromdistrict_1   Садовое кольцо
3    11    fromcity_2       Воронеж
4    11    fromdistrict_1   Коминтерновский
5    13    fromcity_2       Воронеж
6    13    fromdistrict_1   Северный

Как мне получить post_id, где %fromcity_% = Москва, а %fromdistrict_% = Садовое кольцо?

Ответы

▲ 1Принят

Без подзапросов и диких джойнов не получится, наверное:

SELECT post_id
FROM wp_postmeta AS p
WHERE p.`key` LIKE 'fromcity_%' AND p.`value` = 'Москва'
    AND EXISTS (
        SELECT 1
        FROM wp_postmeta AS c
        WHERE c.post_id = p.post_id
            AND c.`key` LIKE `fromdistrict_%`
            AND c.`value` = 'Садовое кольцо'
    )
▲ 1
SELECT post_id
FROM wp_postmeta AS p
WHERE 
(p.`key` LIKE 'fromcity_%' AND p.`value` = 'Москва')
OR
(p.`key` LIKE `fromdistrict_%` AND p.`value` = 'Садовое кольцо')
group by post_id
having count(*)=2