У меня есть этот releases
таблицы в базе данных SQLite3, перечисляя каждую выпущенную версию приложения:Присоединение к ограниченному подзапросу?
|release_id|release_date|app_id|
|==========|============|======|
| 1001| 2009-01-01 | 1|
| 1003| 2009-01-01 | 1|
| 1004| 2009-02-02 | 2|
| 1005| 2009-01-15 | 1|
Таким образом, для каждого APP_ID, будет несколько строками. У меня есть еще одна таблица, apps
:
|app_id|name |
|======|========|
| 1|Everest |
| 2|Fuji |
Я хочу, чтобы отобразить имя приложения и новый релиз, где «новые» означает (а) новейший RELEASE_DATE, и если есть дубликаты, (б) высокий release_id ,
я могу сделать это для индивидуального применения:
SELECT apps.name,releases.release_id,releases.release_date
FROM apps
INNER JOIN releases
ON apps.app_id = releases.app_id
WHERE releases.release_id = 1003
ORDER BY releases.release_date,releases.release_id
LIMIT 1
но, конечно, ORDER BY применяется ко всему SELECT, запрос, и если я уйду из ИНЕКЕ, она по-прежнему возвращает только один ряд.
Это одноразовый запрос в небольшой базе данных, поэтому медленные запросы, временные таблицы и т. Д. В порядке - я просто не могу заставить свой мозг использовать SQL-способ сделать это.
Мне это нравится, и я даже понимаю это - спасибо! –