MySql查询返回整个表,其中包含来自第二个表的可能值

时间:2014-08-01 12:51:01

标签: mysql join

我有两张桌子:

event_categories包含:

  

event_category_id,event_category

示例数据:

1, Tennis
2, Volleyball
3, Boxing
4, Skating

然后我有一个表可以连接到可能链接到这些类别的用户。

users_event_categories包含

  

user_id,event_category_id

示例数据:

1223, 2
1223, 4
5998, 2

我需要一个返回所有事件类别的查询,并在用户链接了该类别时返回。

因此,如果我使用user_id 1223查询,我的结果将是:

1, Tennis, 0
2, Volleyball, 1
3, Boxing, 0
4, Skating, 1

或者使用user_id 4444的查询将返回:

1, Tennis, 0
2, Volleyball, 0
3, Boxing, 0
4, Skating, 0

2 个答案:

答案 0 :(得分:2)

如果您只想要关于一个特定用户的数据

,这将有效
select ec.event_category_id, ec.event_category, if(uec.user_id is null, 0, 1) 
from event_categories ec 
    left join users_event_categories uec
        on uec.event_category_id = ec.event_category_id and uec.user_id = 1223

答案 1 :(得分:0)

select tn2.user_id,event_category,count(event_category) as total from table_name1 tn1
inner join table_name2 tn2 on tn1.event_category_id = tn2.event_category_id
where tn2.user_id = 4444
group by event_category