[テーブル:keys] カラム: id 値: (int) カラム: user_id 値: (int) カラム: is_working 値: (int)0~1 カラム: level 値: (int)0~3 [テーブル:works] カラム: id 値: (int) カラム: user_id 値: (int) カラム: last_time 値: (timestamp)
上記 構造のデータベースがあった場合 以下のことを 1文のSQLで実行できますか?
is_working = 1 && level >= 3 で last_time が 最も古い user_id の行を テーブルusers から select する。
※注意: user_id は両テーブル間で対応しており、 user_id を含む id 以外のデータは 重複があるものとします。
現在は テーブル works から last_time が古いものから順番に user_id を呼び出し、
テーブル keys に is_working = 1 && level >= 3 を満たすものがないか問い合わせるのを 見つかるまで繰り返しています。
具体的な SQL文を含めて 回答いただけたら幸いです。
[追記]
現在 join が使えないか考えていますが よくわかっていません。
回答1件
あなたの回答
tips
プレビュー