Как выбирать записи только в том случае, если объединенная таблица имеет количество больше 10? - PullRequest
6 голосов
/ 03 декабря 2011

Мне нужно выбрать memberid, где количество logins больше 10

Я написал этот запрос:

SELECT COUNT(DISTINCT(member.member_id))
FROM member
LEFT JOIN location_member ON (member.member_id = location_member.member_id)
WHERE Month(FROM_UNIXTIME(member.r_date)) = 11
   AND Year(FROM_UNIXTIME(member.r_date)) = 2011
   AND FROM_UNIXTIME(member.r_date, '%d') = 28
   AND member.pc_address_validated <> 1
   **OR (if checkins > 10)**

Как я могу проверить, если счет больше 10?

Ответы [ 2 ]

7 голосов
/ 03 декабря 2011
SELECT memberId
FROM checkin
GROUP BY memberId
HAVING COUNT(1) > 3

Чтобы ответить на ваш новый запрос:

SELECT member.member_id
FROM member
INNER JOIN checkins ON member.member_id = checkins.member_id
LEFT JOIN location_member ON (member.member_id = location_member.member_id)
WHERE Month(FROM_UNIXTIME(member.r_date)) = 11
   AND Year(FROM_UNIXTIME(member.r_date)) = 2011
   AND FROM_UNIXTIME(member.r_date, '%d') = 28
   AND member.pc_address_validated <> 1
GROUP BY member.member_id
HAVING COUNT(1) > 10
0 голосов
/ 03 декабря 2011

Ваш запрос будет похож на этот,

select ck.memberId,ck.login from Member m join
CheckIn ck on m.id = ck.memberId
group by ck.memberId, ck.login having count(ck.login) > 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...