0

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'); 

問題を再現します。

4

1 に答える 1

0

コメントで提供した例を使用して、クエリselect category_id from kirtan_listを実行すると、次の出力が得られます。

1,2
3

したがって、元のクエリを実行したときに、id が入っている category_list から cat_eng_name を選択します (kirtan_list から category_id を選択します)。

sqlite は、列に値 or (単一の文字列として) が含まれるすべての行を検索しようcategory_listid3ます1,2。明らかにそのような行はありません。ID が1または2の行がありますが、それは とは異なり1,2ます。

于 2016-09-01T11:04:30.697 に答える