Mysql 加入,包括计数

Mysql 加入,包括计数,mysql,sql,Mysql,Sql,我有两张桌子: 事件和事件行动 events columns: event_id user_id event_name events_actions columns: action_id user_id event_name 它们在两个表中都有一个公共字段,即event_name 我想为一个用户显示所有事件,但是,仅当它们有一些与之链接的事件\u操作时(通过事件\u名称链接) 我可以通过按用户id拉取所有事件来实现这一点,然后在显示之前确保同名事件动作>0,但有没有一种方法可

我有两张桌子:

事件和事件行动

events columns:

 event_id
 user_id
 event_name

events_actions columns:

 action_id
 user_id
 event_name
它们在两个表中都有一个公共字段,即event_name

我想为一个用户显示所有事件,但是,仅当它们有一些与之链接的事件\u操作时(通过事件\u名称链接)

我可以通过按用户id拉取所有事件来实现这一点,然后在显示之前确保同名事件动作>0,但有没有一种方法可以在一个SQL查询中实现这一点

我正在使用MySQL

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


首先,表
events\u actions
上应该有
event\u id
,而不是
event\u name
。那么,假设
event\u 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
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