2012-03-28 9 views
0

含む参加します(event_nameでリンクされた)event_actionsがリンクされている場合のみ(event_nameによってリンクされている)は、私は2つのテーブルを持って、カウント

私はすべてのイベントをuser_idでプルしてから、同じ名前event_actions> 0しかし、1つのSQLクエリでそれを行う方法はありますか?私は、MySQL

答えて

1
select * 
from events ev 
where exists (select 1 from event_actions ea where ev.event_name = ea.event_name) 

または

select ev.event_name,count(ea.action_id) 
from events ev,event_actions ea 
where ev.event_name = ea.event_name 
group by ea.event_name 
having count(ea.action_id) > 0 
+0

@カッパを多くのおかげ –

+0

どういたしまして:)アドバイスをLamakのおかげ@ – kappa

1

にまず第一を使用しています

、テーブルevents_actions、ないevent_nameevent_idがあるはずです。さて、あなたはこのクエリを行うことができ、event_nameが一意であると仮定:

SELECT E.user_id, E.event_name 
FROM dbo.events E 
INNER JOIN (SELECT DISTINCT event_name, user_id FROM dbo.events_actions) EA 
ON E.user_id = EA.user_id AND E.event_name = EA.event_name 
+0

、その感謝 –

関連する問題