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 

しかし、「オンライン」の部分がありません。これを選択で使用することは可能ですか?たとえば、行が存在する場合、オンラインという名前の選択に値があり、その値 = 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 に答える