###実現したいこと
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