- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:最初に挿入された行だけ取得したい)
SQLで一番最初に挿入された行だけ取得する方法
このQ&Aのポイント
- SQLで一番最初に挿入された行だけを取得する方法について解説します。
- 具体的な例を示しながら、user_itemテーブルでuser_idが1で一番最初に挿入された行を取得するSQL文の作成方法を説明します。
- また、他の行は取得しないようにする方法も紹介します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
よくあるランク付けの方法を応用すればよいでしょう。 まず、id順でitem_idごとにランクをつけます SELECT id,user_id,item_id,( SELECT COUNT(DISTINCT id) +1 FROM user_item AS t2 WHERE 1 AND t1.id > t2.id AND t1.item_id=t2.item_id ) AS rank FROM `user_item` AS t1; これを元に、user_idが1、rankが1のものを抽出します。 なお上記rank項目はHAVING句に移動します SELECT id,user_id,item_id FROM `user_item` AS t1 WHERE user_id=1 HAVING ( SELECT COUNT(DISTINCT id) +1 FROM user_item as t2 WHERE 1 AND t1.id > t2.id AND t1.item_id=t2.item_id )=1;
お礼
ご回答有難うございます。 そのやり方でできました。 参考になりました。