2016-09-01 1 views
0

Je l'ai utilisé cette requête pour récupérer les données de la table de données SQLite:Comment récupérer les données de la table SQLite en utilisant IN

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

Mais je ne suis pas en mesure d'obtenir un résultat ou d'une erreur, les données sont disponibles table selon la condition ci-dessus.

Le tableau peut être créé avec:

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

pour reproduire le problème.

+0

C'est-à-dire une séquence de commandes qui créent les tables impliquées et insèrent quelques lignes dans celles-ci, de sorte que lorsque la requête ci-dessus est exécutée, elle ne produit aucune sortie. – redneb

Répondre

0

En utilisant l'exemple que vous avez fourni dans les commentaires, si je courais la requête select category_id from kirtan_list je reçois la sortie suivante:

1,2 
3 

Alors, quand je courais sélectionnez votre requête initiale cat_eng_name de category_list où id dans (sélectionnez category_id de kirtan_list)

sqlite va essayer de trouver toutes les lignes de category_list dont la colonne id contient la valeur 3 ou 1,2 (comme une seule chaîne). Clairement, il n'y a pas de telle ligne. Il existe des lignes dont l'ID est 1 ou 2, mais c'est différent de 1,2. Pouvez-vous poster un exemple complet minimal?

+0

choisir cat_eng_name de category_list où id in (select group_concat (category_id) de kirtan_list) par cette requête est-ce possible? – blkerai

+0

'select group_concat (category_id) de kirtan_list' renvoie une seule ligne contenant une seule colonne, la chaîne' 1,2,3'. Vous voulez retourner plusieurs lignes; Plus précisément, dans ce cas, vous devez renvoyer 3 lignes contenant les valeurs '1',' 2' et '3'. – redneb