タイトルの曖昧さをお許しください。自分がやろうとしていることを簡潔に書く方法が本当にわかりません。
私はテーブルを持っています
名前-stritem_id-int位置-int
name item_id position
| 6asd | 17 | 1 |
| asdf | 3 | 1 |
| asdf | 3 | 2 |
| asdf | 3 | 3 |
| asdf | 3 | 4 |
のリストでINクエリを使用しようとしていますが、item_ids
アイテムごとに1行しか返されません。これは、最も低い位置にある行である必要があります。
select name, item_id, position from my_table
WHERE item_id IN (17, 3) AND name != '';
これにより、最下位の位置のみを返そうとしているときに、item_idのすべての行が返されます。当然、ORDER_BYとLIMITを調べましたが、クエリは、各IDで個別に行われるのではなく、結果セット全体に対してのみ行われます。
ORDER BY position ASC LIMIT 1
誰かが以前にこれをやろうとしたことがありますか?どんな助けでも大歓迎です。どういうわけか副選択を使用する必要がありますか?