###実現したいこと
thread_ID = 11であるコードのうち、order_numberが最大のレコードを取得したいのですが、適切なSQLを教えていただけませんでしょうか。
###テーブル構成
CREATE TABLE p_comments (`ID` int, `thread_ID` int, `order_number` int) ; INSERT INTO p_comments (`ID`, `thread_ID`, `order_number`) VALUES (100, 11, 1), (101, 12, 1), (102, 13, 1), (103, 11, 2), (104, 13, 2), (105, 12, 2), (106, 11, 3), (107, 13, 3), (108, 11, 4) ;
###求める結果
thread_ID = 11であるレコードのうち、order_numberが最大のレコードはつまりID = 108のレコードなので以下の結果がほしいです。
尚、最大値は1つしかありません。
| ID | thread_ID | order_number |
|---|---|---|
| 108 | 11 | 4 |
書いてみたSQL
まずWHERE = 11と指定し、それらの最大という意図でMAX(order_number)と試したのですが、MAXの使い方が不適切なようでした。
SELECT ID, MAX(order_number) AS max_order_number FROM p_comments WHERE thread_ID = 11
MAXがよくわからないため、NOT EXISTSを以下のように使ってみたのですがこれでも実現できませんでした。
SELECT * FROM p_comments AS comments1 WHERE thread_ID = 11 AND NOT EXISTS ( SELECT 1 FROM p_comments AS comments2 AND comments1.order_number < comments2.order_number );
初歩的な質問で恐縮ですが、ご回答宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
2020/11/03 17:30
2020/11/03 17:32
2020/11/03 17:33
2020/11/03 17:36
2020/11/03 17:44
2020/11/03 17:46