Как сделать сложный SQL запрос?

Сейчас делаю вот так
select * from members_urls where url_id = 80286 OR url_id = 80287 OR url_id = 80285

получаю вот такие данные
id member_id url_id
1390306 50605 80285
1390859 50660 80285
1402753 51850 80285
1402805 51855 80285
3319204 244646 80285
1390307 50605 80286
1390854 50660 80286
1408187 52394 80286
1434165 54993 80286
1434541 55030 80286
1390309 50605 80287
1408956 52471 80287
1428814 54457 80287
1432950 54871 80287
1434173 54993 80287
1438319 55408 80287
2255958 137752 80287

И далее я уже средставами PHP загоняю в массив
foreach ($dataz as $data)
{
$tmp_data[$data->member_id][$data->url_id] = true;
}
foreach ($tmp_data as $memberid => $tmp)
{

if (count($tmp_data[$keyid]) > 3) {
$member_idToDB[] = array(
'member_id' => $memberid,
);
}
}


В этоге остаются в массиве member_id у которых совпадений более 3 по url_id

Можно это сделать сразу в SQL запросе?
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
select member_id
from members_urls
where url_id in (80286, 80287, 80285)
group by member_id
having count(*) > 3
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы