id user checkbox_id selected
358 dimon 5 1
357 dimon 3 1
355 dimon 38 1
353 vasya 3 1
352 lera 5 1
351 sveta 4 1
Мне нужен такой запрос который бы мне вывел например тех у кого отмечен чекбокс с id 5 и 3 (и больше ) то есть у кого только 5 отмечено то не выводить, а у кого и 5 и 3 и 4 к примеру то вывести.. Как будет выглядеть запрос, чёт никак не придумаю, ещё сложность в том что нужно вывести всех пользователей из анкете это одна таблица и с учётом выбранных чекбоксов их фильтровать грубо говоря так:
SELECT t1.nick, t1.name, t1.family, t1.user, t1.avatar, t1.name_gorod, t1.birthday, t1.pol, t3.time AS online_time
FROM anketa t1
INNER JOIN anketa_checkbox_user t2 ON t1.user = t2.user AND t2.checkbox_id IN ( 3, 4, 5, 7 )
INNER JOIN online t3 ON t1.user = t3.user
WHERE t1.avatar != ''
только если делать так он выводит по два или три раза пользователей у кого чекбоксы, то есть не тех у кого и 3 и 4 и 5 отмечены вывести а остальных нет, а выводит у кого 3 ряд пользователей, потом у кого 5 тех же самых..
Вот собственно затуп, помогите пожалуйста!
Спустя 38 минут, 38 секунд (20.08.2010 - 02:01) dr_Lev написал(а):
попробуй так:
SELECT t1.nick, t1.name, t1.family, t1.user, t1.avatar, t1.name_gorod, t1.birthday, t1.pol, t3.time AS online_time
FROM anketa t1
INNER JOIN (SELECT count(*) AS chboxs, user FROM anketa_checkbox_user WHERE checkbox_id IN (3, 4, 5, 7) GROUP BY user) t2 ON t1.user = t2.user AND t2.chboxs = 4
INNER JOIN online t3 ON t1.user = t3.user
WHERE t1.avatar != ''
Спустя 5 часов, 19 минут, 33 секунды (20.08.2010 - 07:21) web-monster написал(а):
О класс! Спасибо!