У меня есть следующий кодMySQL - цикл по строкам
select count(*)
from (select Annotations.user_id
from Annotations, Users
where Users.gender = 'Female'
and Users.user_id = Annotations.user_id
and image_id = 1
group by Annotations.user_id
having sum(case when stem = 'taxi' then 1 else 0 end) > 0 and
sum(case when stem = 'zebra crossing' then 1 else 0 end) > 0
) Annotations
Он производит подсчет того, сколько женщин, которые дали шток «такси» и «зебру» для изображения 1.
Sample данные
user id, image id, stem
1 1 image
1 1 taxi
1 1 zebra crossing
2 1 person
2 1 zebra crossing
2 1 taxi
3 1 person
3 1 zebra crossing
Ожидаемый результат (или аналогичный)
stem1, stem2, count
taxi , zebra crossing 2
person, zebra crossing 2
Однако, поскольку существует более 2000 стеблей, я не могу указать их все.
Как бы обойти петли через строки стебля с помощью image_id = 1 и gender = female в отличие от указания строки стебля?
Спасибо
Не могли бы вы опубликовать выборочные данные и ожидаемый результат? –
К какой таблице принадлежит 'stem'? –
@ PM77-1 77-1, отредактированный для данных образца , и стебель принадлежит таблице аннотаций – 2013-04-02 17:45:23