Присоединиться в том числе кол - PullRequest
0 голосов
/ 28 марта 2012

У меня есть две таблицы:

events и events_actions

events columns:

 event_id
 user_id
 event_name

events_actions columns:

 action_id
 user_id
 event_name

у них есть одно общее поле в обеих таблицах, которое является event_name

Я хочу показать все события дляпользователь, но, только если с ним связаны некоторые события event_actions (связанные с именем события)

Я могу сделать это, потянув все события по user_id, а затем перед отображением убедитесь, что то же имя event_actions> 0, но есть лиспособ сделать это в одном запросе SQL?

Я использую MySQL

Ответы [ 2 ]

1 голос
/ 28 марта 2012

Прежде всего, на столе должно быть event_id events_actions, а не event_name.Итак, если предположить, что 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
1 голос
/ 28 марта 2012
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...