Я пытаюсь написать запрос в SQLite, передавая несколько значений в предложение WHERE, в котором возвращаемые результаты содержат как совпадающие, так и не совпадающие значения.
У меня есть таблица с именем songs
со следующими столбцами:song_id
, song_title
, artist_name
Я хочу передать массив названий песен, чтобы увидеть, существуют ли они в таблице или нет.Если они существуют, возвращаемый список должен содержать как song_title
, так и artist_name
, но если некоторые заголовки не существуют, возвращается только данный заголовок.
Например, если в таблице существуют следующие значения:
1, 'song1', 'artist1'
2, 'song2', 'artist1'
3, 'song3', 'artist2'
4, 'song4', 'artist1'
, и я пишу следующую инструкцию запроса:
SELECT song_title, artist_name FROM songs WHERE song_title IN ('song1', 'song2', 'song5');
То, что он возвращает, выглядит следующим образом:
'song1', 'artist1'
'song2', 'artist1'
То, что я хочу, это какследует:
'song1', 'artist1'
'song2', 'artist1'
'song5'
Итак, в некотором смысле, яхотите, чтобы все значения в данном массиве были возвращены вместе с именем исполнителя по сравнению с теми, которые существуют в таблице.Это обратный тип запроса, но я не могу понять, как его написать.
Любая помощь будет очень полезна.
Заранее спасибо!