IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

SQLiteDatabase -> Jointure entre table


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Par défaut SQLiteDatabase -> Jointure entre table
    Bonjour à vous ...

    Dans mon application Android, j'ai deux tables ayant chacune une classe dédiée que je souhaiterais joindre pour coupler mes données ...

    je m'explique : Dans ma table A, j'ai une entité qui est qualifiée par une durée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Structure table A: id ; nom ; durée
     
     id_a_1; Entité 1 ; 00:16:00
     id_a_2; Entité 2 ; 00;12;00
    dans une seconde table J (de jointure) , j'ai pour chaque enregistrement, un horaire de début :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Structure table J : id ;id_table_a; id_table_b; heure_debut
     
    id_j_1;id_a_1; id_b_1;00:17:00
    id_j_2;id_a_1; id_b_1;00:12:00
    id_j_3;id_a_1; id_b_1;00:11:15
    id_j_4;id_a_2; id_b_1;00:18:00
    Remarque : La table B n'a pas d'importance pour ma question

    Ma question est comment récupérer les valeurs de "heure de début" et "durée" pour pouvoir récupérer les enregistrement en cours (qui sont commencés mais pas terminés). Tout les tutoriels que j'ai vu font des requêtes sur une seule table mais je ne trouve pas de documentation sur le principe de jointure ...

    J'ai déjà la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT *
    FROM table_j, table_a, table_b
    WHERE table_j.table_b_id= table_b.id
    AND   table_j.table_a_id= table_a.id
    AND   table_b.id = 2
    AND   table_jheure_debut < TIME(NOW())
    AND   table_j.heure_debut + table_b.duree> TIME(NOW())
    ORDER BY table_j.heure_debut
    Merci pour vos réponses

  2. #2
    Membre chevronné
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Par défaut
    Je ne comprends pas ton probleme, si en plus t'as déjà la requête

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Janvier 2003
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2003
    Messages : 339
    Par défaut
    Je ne demande pas la requete puisque effectivement, je l'ai !!

    C'est simplement la manière de l'appeler dans l'application.

    Aujourd'hui, dans ma layout, je passe par une méthode de la classe table_j pour faire un "rawquery" est-ce que cela est correct selon vous ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    	public Cursor getSpectacleActuel(Programme programme) {
    		int programme_id = programme.getId();
     
    		String requete = 
    				"SELECT spectacle.nom,heure_debut,heure_fin,temps,time(heure_debut+temps-TIME('now')) as temp_restant " +
    				"FROM horaire, spectacle, programme " +
    				"WHERE horaire.programme_id = programme.id " +
    				"AND   horaire.spectacle_id = spectacle.id " +
    				"AND   horaire.programme_id = ? "  +
    				"AND   horaire.heure_debut <= TIME('now') " +
    				"AND   (horaire.heure_debut + spectacle.temps >= TIME('now') " +
    				"OR     horaire.heure_fin >= TIME('now')) " +
    				"ORDER BY horaire.heure_debut";				
     
    		Cursor c = bdd.rawQuery(requete,new String[] {String.valueOf(programme_id)}); 
    		return c;

Discussions similaires

  1. Jointure entre table de différentes bases de données
    Par iLoLo21 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 19/01/2009, 14h35
  2. [1.x] jointure entre tables de bd différentes symfony
    Par jemele dans le forum Symfony
    Réponses: 2
    Dernier message: 07/07/2008, 10h03
  3. jointure entre tables de bases différentes
    Par mcdelay dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/04/2007, 12h56
  4. Maximum authorisé de jointure entre tables
    Par Arkane dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/12/2006, 17h49
  5. Réponses: 2
    Dernier message: 10/10/2006, 18h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo