Как получить данные из таблицы sqlite, используя IN

Я использовал этот запрос для получения данных из таблицы данных sqlite:

select cat_eng_name from category_list  where id in (select category_id from       kirtan_list)

Но я не могу получить какой-либо результат или любую ошибку, данные доступны в таблице в соответствии с вышеуказанным условием.

Таблица может быть создана с помощью:

CREATE TABLE "kirtan_list" ( `id`   INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, `category_id` TEXT, `title_guj`   TEXT, `title_eng`   TEXT, `description_guj` TEXT, `description_eng` TEXT, `kirtan_group`    INTEGER, `pad_no`   INTEGER, `kirtan_audio` TEXT );
INSERT INTO `kirtan_list` VALUES (1,'1,2','kjdsfh','Test','kdsgf','Test',1,1,'1.mp3');
INSERT INTO `kirtan_list` VALUES (2,'3','skdjgf','askjdh','kasjdh','kasjdh',1,2,'2.mp3');
COMMIT; 


CREATE TABLE `category_list` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE, `cat_guj_name`    TEXT, `cat_eng_name`    TEXT );
INSERT INTO `category_list` VALUES (1,'All Kirtan','All Kirtan');
INSERT INTO `category_list` VALUES (2,'stuti','Stuti'); 

воспроизвести проблему.

1 ответ

Используя пример, который вы предоставили в комментариях, если я выполнил запрос select category_id from kirtan_list Я получаю следующий вывод:

1,2
3

Поэтому, когда я запустил ваш оригинальный запрос, выберите cat_eng_name из category_list, где id (выберите category_id из kirtan_list)

sqlite постарается найти все строки из category_list чья id столбец содержит значение 3 или же 1,2 (как одна строка). Понятно, что такого ряда нет. Есть строки, чей идентификатор 1 или же 2, но это отличается от 1,2,

Другие вопросы по тегам