Valera153
Новичок
Есть таблица и задача, полностью аналогичная уже задаваемому вопросу: http://phpclub.ru/talk/threads/Выборка-по-условию-из-нескольких-строк.73608/
Смысл: это таблица параметров элементов (id)
Надо выбрать только те id, у которых выполнены все необходимые условия.
Запрос: SELECT DISTINCT `id` FROM `tab` WHERE (`key`='k1' AND `VALUE`='v1') OR (`key`='k2' AND `VALUE`='v2') OR (`key`='k3' AND `VALUE`='v3')
дает неверный результат, т.к. он выбирает по "ИЛИ".
Если OR заменим на AND - то скрипт конечно ничего не найдет.
В общем, никак оптимальное решение не найду.
Можно конечно 3-мя запросами обработать, если ищем по 3-м условиям, но хочется грамотный, рациональный запрос.
Смысл: это таблица параметров элементов (id)
Надо выбрать только те id, у которых выполнены все необходимые условия.
Запрос: SELECT DISTINCT `id` FROM `tab` WHERE (`key`='k1' AND `VALUE`='v1') OR (`key`='k2' AND `VALUE`='v2') OR (`key`='k3' AND `VALUE`='v3')
дает неверный результат, т.к. он выбирает по "ИЛИ".
Если OR заменим на AND - то скрипт конечно ничего не найдет.
В общем, никак оптимальное решение не найду.
Можно конечно 3-мя запросами обработать, если ищем по 3-м условиям, но хочется грамотный, рациональный запрос.