Запрос со множеством условий выборки из одной таблицы

Lurk

Новичок
Запрос со множеством условий выборки из одной таблицы

Пришлось мне делать базу с заранее неизвестной мне структурой. Т.е. пользователь сам, в админке, создает структуру "объекта" который он хочет сохранить в базе. Решил проблему тремя таблицами. Одна таблица, та самая в которой хранятся уже данные "объекта", имеет вид:

| id | obj_id | data_name | value |

Поиск по одному параметру делается простым селектом с двумя условиями "WHERE `data_name`='data_name' AND `value`='value'". Там уже, в зависимости от задачи, можно либо сджойнить по `obj_id` c таблицей имен, либо уже переваривать полученные данные в пыхе.

А вот как сделать поиск по двум и более параметрам не могу придумать уже второй день.

Подскажите в какую сторону гуглить? :)
 

zerkms

TDD infected
Команда форума
за два запроса. сначала ищешь id объекта, который удовлетворяет критериям. через INNER JOIN, в ON условия поиска
или GROUP BY + HAVING + COUNT.
вторым запросом по набору id'ов уже получаешь итоговую выборку.
 

prolis

Новичок
[sql]
select * from table t1,table t2
where t1.obj_id=t2.obj_id
and t1.`data_name`='data_name' AND t1.`value`='value'
and t2.`data_name`='data_name2' AND t2.`value`='value2'
[/sql]
 

Lurk

Новичок
Автор оригинала: prolis
может всё проще:
[sql]
WHERE
(`data_name`='data_name1' AND `value`='value1')
or
(`data_name`='data_name2' AND `value`='value2')
[/sql]
Этот вариант выберет все по первому или второму условию. Мне нужно по первому и второму условию.

UPD. :)

-~{}~ 02.04.09 17:51:

Всем спасибо.
Сделал вариант как предложил prolis
выборка из таблицы с 25к записей по 4 параметрам выполняется за 0.037092 сек. Посмотрим как дальше.
 
Сверху