|  | 
Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток! В базе информация раскидана по полям: id / field_id / field_key / field_type / field_label / field_value / record_id, нужна выборка по record_id, но с несколькими параметрами (field_value) из field_id.
К примеру: есть база цветов; field_id = 1 - стебель: field_value("значение1") - длинный, короткий / field_id = 2 - цвет: field_value("значение2") - желтый, синий. Нужна выборка цветов, длинные и синие, короткие и желтые. Сейчас (см. код ниже) выводит длинные+синие, т.е. из всех цветов находит отдельно длинные и отдельно синие, и складывает, а нужно - цветы, которые длинные, синие и короткие, желтые.
SELECT COUNT(record_id) 
FROM table_name t
WHERE 
  (field_id,field_value) in ((1,N'значение1'),(2,N'значение2')) 
  AND EXISTS(
    SELECT 1 
    FROM table_name_cat r 
    WHERE r.catid = 1 AND r.record_id = t.record_id 
    );
Помогите пожалуйста
Неактивен

Доброго времени суток. Приведите структуры таблиц ( результаты запросов  
SHOW CREATE TABLE `table_name` и SHOW CREATE TABLE `table_name_cat` ), тестовый набор данных (лучше как раз с цветами) и желаемый результат (в виде таблички, а не словесного описания).
Неактивен
`table_name`
field_id    field_key    field_type    field_label    field_value    record_id
1           a1234567    select         цвет              желтый      1
2           a89            select         стебель          длинный     1
1           a1234567    select         цвет                синий       2
2           a89            select         стебель          короткий    2
1           a1234567    select         цвет                синий        3
2           a89            select         стебель          короткий    3
1           a1234567    select         цвет                синий        4
2           a89            select         стебель          короткий    4
`table_name_cat`
id    catid    record_id
1    1           1
2    1           2
3    1           3
4    1           4
Результат: 1 цветок желтый длинный и 3 цветка синих коротких (не знаю как в виде таблички оформить результат)
Как-то так
Отредактированно M@xim (31.07.2014 11:45:53)
Неактивен

Ну, поехали.
Данные хотелось увидеть вот так  :
 :
Неактивен
Запрос для группировки работает отлично, а SELECT record_id,group_concat(field_value ORDER BY 1 ASC) prop FROM `table_name_7155` tn JOIN `table_name_cat_7155` tnc 
USING(record_id) GROUP BY record_id HAVING prop IN ('длинный,желтый'); выводит :"MySQL вернула пустой результат (т.е. ноль строк)". И еще вопрос: как быть если категорий несколько, у меня их 70? Заранее спасибо!
Неактивен
С категориями вроде разобрался, использую (SELECT r.record_id FROM table_name_cat AS r WHERE r.catid = 1), но строчки не находит 
Отредактированно M@xim (01.08.2014 12:04:56)
Неактивен

Если запрос с группировкой работает, то подберите соответствующий having - чтобы отсеивать ненужное. Насчет 70 категорий - не очень понял вопрос, поясните.
Неактивен
Просто данные разбиты по 70 категориям, т.е. catid содержит значения 1, 2, ... 70 и для выборки из каждой я использую SELECT r.record_id FROM table_name_cat AS r WHERE r.catid = 1(где 1 - номер категории). Здесь вроде сам разобрался
Неактивен

Что касается http://sqlinfo.ru/forum/viewtopic.php?pid=40098#p40098
если не получается отсеять, то  приложите дампы таблиц (с тем набором, с которым не можете договориться), будем посмотреть.
Неактивен