Mysql检查常规选择中是否存在行?

时间:2013-01-28 22:32:01

标签: mysql mysqli

我有一个关于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.这可能吗?

1 个答案:

答案 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