我使用下面的查询来检索有关聚会(事件)的信息,现在我需要知道查看它的用户是否参与其中。
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语句中执行此操作(最好没有子查询)?
答案 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