Requête SQLite

トップ ページ

このメッセージに返信
著者: Marc
日付:  
To: ML Guilde
題目: Requête SQLite
Je veux récupérer des noms de fichiers contenus dans la base de données
sqlite3 de F-Spot.

L'info est à cheval sur deux tables, la première contient des numéros de
photos et les numéros d'étiquettes associées :

CREATE TABLE photo_tags (
        photo_id        INTEGER,
       tag_id           INTEGER,
       UNIQUE (photo_id, tag_id)
);


La deuxième contient les infos des photos :

CREATE TABLE photos (
        id                      INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
        time                    INTEGER NOT NULL,
        base_uri                STRING NOT NULL,
        filename                STRING NOT NULL,
        description             TEXT NOT NULL,
        roll_id                 INTEGER NOT NULL,
        default_version_id      INTEGER NOT NULL,
        rating                  INTEGER NULL
);


Je veux récupérer le 'base_uri' et le 'filename' pour chaque photo ayant
l'étiquette (tag_id) 8

Quand je tape la commande suivante :

sqlite3 photos.db 'SELECT base_uri,filename FROM photos WHERE id =
(SELECT photo_id FROM photo_tags WHERE tag_id = 8);'

sqlite3 me retourne bien le 'base_uri' et le 'filename', mais il ne me
retourne qu'une seule ligne sur les 773 espérées alors que la
sous-requête me retourne bien les 773 ids de photos possédant l'étiquette 8.

J'ai essayé en rajoutant ALL après SELECT, mais rien de mieux

Une idée ?

--
Marc BERLIOUX
Le seul vrai travailleur est celui
qui ne craint pas de s'endormir à côté de son travail
pour bien lui montrer qu'il n'a pas peur de lui." Pierre Dac