0

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

4

1 回答 1

0

似乎您只需要LEFT JOIN在另一张桌子上使用 a ,然后使用 aCASE来提供值:

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 
于 2013-01-28T22:37:32.167 回答