我有一个关于mysql的问题。是否可以检查外部表中是否存在行? 例如,我需要显示最近上传的图像,我想用它显示一些用户数据,并显示用户是否在线。
我目前的查询是:
SELECT `users`.`username`, `users`.`location`, `users`.`age`, `users`.`dateofbirth`
FROM (`images`)
JOIN `users`
ON `users`.`userid` = `images`.`userid`
WHERE `images`.`active` = 1
LIMIT 12
但我错过了'在线'部分。是否有可能在选择中使用它?例如,如果该行存在,则在名为online的选择中将有一个值,并且它的值= 1,如果用户不在线(表中没有行),则该值必须为0.这可能吗?
答案 0 :(得分:0)
好像你只需要在另一张桌子上使用LEFT JOIN
,然后使用CASE
来提供价值:
SELECT `users`.`username`,
`users`.`location`,
`users`.`age`,
`users`.`dateofbirth`,
case when o.`userid` is null then 0 else 1 end UserOnline
FROM (`images`)
JOIN `users`
ON `users`.`userid` = `images`.`userid`
left join online_table o
on `users`.`userid` = o.`userid`
WHERE `images`.`active` = 1
LIMIT 12