检索有关事件的信息并确定用户是否参与 - mysql查询

时间:2013-04-30 00:50:48

标签: mysql sql join

我使用下面的查询来检索有关聚会(事件)的信息,现在我需要知道查看它的用户是否参与其中。

SELECT
 meetups.id,
 meetups.meetup_name,
 meetups.url_meetup,
 meetups.meetup_text,
 meetups.date,
 meetups.time,
 users.username,
 TIMESTAMPDIFF(YEAR,users.birthdate,CURDATE()) AS age,
 c1.city_name as meetup_city,
 c2.city_name as user_city   
FROM
 meetups  
 LEFT JOIN users ON
  meetups.author_id=users.id
 LEFT JOIN cities c1 ON
  c1.postalcode = meetups.postalcode
 LEFT JOIN cities c2 ON
  c2.postalcode = users.postalcode
WHERE
 meetups.url_meetup = ?

我有一个名为meetup_participants的表,其中我存储参与不同聚会的用户。

这个表的结构很简单:

meetup_id, user_id

在两个列上有唯一索引。

所以我需要以某种方式加入meetups.id = meetup_participants.id上的表格,而user_id必须等于会话中存储的那个。

如果用户参与,我想得到结果为1,如果不参加,我想得到结果为0。

我如何在select语句中执行此操作(最好没有子查询)?

1 个答案:

答案 0 :(得分:0)

左边加入你的meetup_participants表。

left join meetup_participants mp where mp.something = meetups.something
and mp.user_id = the one you want.

在select子句中使用case构造。

case when mp.user_id is not null then 1 else 0 end IsParticipant