Как использовать select в предложениях объединения в Android 2.1? - PullRequest
2 голосов
/ 01 ноября 2010

У меня есть запрос, который выполняет какое-то волшебное объединение групп сортировки, которое прекрасно работает на версии SQLite для Android 2.2 (froyo):

SELECT channels.*, p.*
FROM channels 
LEFT JOIN programs p ON channels._id = p.channel_id
JOIN (select p2.channel_id, max(p2.airdate) max_air FROM programs p2 
      GROUP BY p2.channel_id) pj
ON pj.channel_id = p.channel_id AND pj.max_air = p.airdate
ORDER BY channels.channel_index asc;

По некоторым причинам соединение не работает сAndroid 2.1, но не работает с

no such column: pj.channel_id

Я считаю, что это потому, что SQLite был обновлён с 2.1 до 2.2, но что будет правильным SQL, который работает для обеих версий?

1 Ответ

0 голосов
/ 22 апреля 2011

Разрешение было простым, мне просто нужно было удалить псевдоним "p":

SELECT channels.*, programs.*
FROM channels
LEFT JOIN programs ON channels._id = programs.channel_id
JOIN (select p2.channel_id channel_id, max(p2.airdate) max_air FROM programs p2
      GROUP BY p2.channel_id) pj
ON pj.channel_id = programs.channel_id AND pj.max_air = programs.airdate
...