Допустим, у меня есть две таблицы:
album
album_id
album_name
и
song
album_id
song_name
track_number
и я хотел бы создать SQL-запрос, который с учетом album_id
вернет album_name
в одном поле и все song_name
в списке через запятую, упорядоченном по track_number
в другом поле.
Конечным результатом будет курсор с одной строкой и двумя столбцами:
название_альбома: «Некоторое название альбома»
песни: "song1, song2, song3, song4"
Я думаю, мне нужно что-то вроде этого:
SELECT a.*, group_concat(s.name ORDERBY s.track_number SEPERATOR ', ')
FROM album a
LEFT JOIN songs s
WHERE (a.album_id=1)
Это неправильно, но я думаю, что я на правильном пути
Возможно ли это в sqlite3 на Android? Можете ли вы сказать мне, как?
** РЕДАКТИРОВАТЬ **
Исходя из превосходного ответа ypercube, который работает, есть ли способ добавить другое поле, очень похожее на песню, но давайте назовем его музыкантом.
Итак, новая таблица
musician
album_id
musician_name
musician_number
и мой курсор теперь выдаст мне результат:
название_альбома: "Some Album Name"
песни: "song1, song2, song3, song4"
музыкант: "музыкант1, музыкант2, музыкант3"
со значением музыканта, отсортированным по номеру музыканта?