お世話になります。
SQLのクエリで、自己解決できない問題があり、質問させていただきました。
テーブル構造
user ユーザテーブル
id, name
work 仕事テーブル
id, name
user_order_work 応募管理テーブル
id, user_id, work_id, createdAt
※応募は、同じユーザが同じ仕事になんども投稿できるとする。
問題
上記のテーブル構造から、
「ある仕事(work.id=1)の応募一覧を、応募したユーザが重複しない形で取得する。なおかつ、応募したユーザが重複している場合は、そのユーザが、最後に(最新の)応募した時の応募管理情報を取得する」
と言う問題を解決したいです。
SELECT * FROM user_order_work as uow left join work as w ON uow.work_id = w.id where w.id = 1 group by uow.user_id;
上記のクエリを書いてみたのですが、「ある仕事の応募一覧を、応募したユーザが重複しない形で取得する。」までは、クリアできます。しかし、「応募したユーザが重複している場合は、そのユーザが、最後に(最新の)応募した時の応募管理情報を取得する」がクリアできません。
どのようなクエリを書けば、この問題をクリアできますか?
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー