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

Langage SQL Discussion :

Jointure de plusieurs select disctincts


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut Jointure de plusieurs select disctincts
    Bonsoir,

    J'aimerais savoir si il est posible de récupérer plusieurs informations d'une seule requête dans le cas suivant:

    J'ai 3 tables:

    Fruits.
    Légumes.
    Voiture.

    et un mot clé.

    J'aimerais récupérer dans chaque table, les entrées commençant par mon mot clé, avec doctrine, quelque chose de ce genre là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $reponse = Doctrine_Query::create()
    			->select('fruits.nom, legumes.titre, voiture.titre')
    			 ->from('fruits')
    			 ->leftjoin('legumes')
    			 ->leftjoin('voiture')
    			 ->where("fruits.nom LIKE '".$search."%'")
    			 ->orWhere("legumes.titre LIKE '".$search."%'")
    			 ->orWhere("voiture.titre LIKE '".$search."%'");
    Est-ce possible ou faut-il faire 3 requêtes différentes ? Merci.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 102
    Points : 28 392
    Points
    28 392
    Par défaut
    Cela pourrait se résoudre avec une UNION, mais je ne sais pas si ton... machin sait faire ça.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 243
    Points : 12 874
    Points
    12 874
    Par défaut
    Bonjour,
    Un coup tu parles de Fruits, Légume, Voiture, et ensuite d'album, artiste, oeuvre. Ce n'est pas très clair.

    Est-ce que tu peux nous donner la structure de tes tables, ainsi qu'un jeu de test et le résultat attendu ?

    Tatayo.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut
    Oui les tables ont été modifiées désolé...

    J'aimerais obtenir par exemple avec le mot clé 'c' obtenir dans mon résultat final:

    fruit: citron
    legumes: courgette
    voiture: corvette

    EDIT:

    Effectivement UNION semble être la solution, mais syntaxiquement, comment appliquer la condition du mot clé à chaque SELECT ? Quelque chose comme suit ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT legume.nom FROM legume 
    WHERE legume.nom LIKE '.$keyword.'%
    UNION
    SELECT fruit.nom FROM fruit 
    WHERE fruit.nom LIKE '.$keyword.'%
    UNION
    SELECT voiture.titre FROM legume 
    WHERE voiture.titre LIKE '.$keyword.'%
    Merci !

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Presque !
    Ne t'embête pas avec la syntaxe à la mord moi le noeud de cette saloperie d'ORM et passe lui une requête en SQL natif ; j'espère qu'il y a une instruction pour qu'il puisse la traiter !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $sql = "
    	SELECT legume.nom 
    	FROM legume 
    	WHERE legume.nom LIKE '".$keyword."%' 
    	UNION
    	SELECT fruit.nom 
    	FROM fruit 
    	WHERE fruit.nom LIKE '".$keyword."%' 
    	UNION
    	SELECT voiture.titre 
    	FROM legume 
    	WHERE voiture.titre LIKE '".$keyword."%' 
    ";

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut
    Exact ! Merci beaucoup pour l'aide.

    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Evenement Jlist plusieurs selection
    Par Blast dans le forum Composants
    Réponses: 1
    Dernier message: 16/03/2006, 17h44
  2. plusieurs selections selon sur colonne different critere
    Par richton95 dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/01/2006, 17h25
  3. Jointure avec plusieurs résultats
    Par kemenaran dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/12/2005, 23h21
  4. Plusieurs SELECT dans l'ouverture d'une connection
    Par pmboutteau dans le forum ASP
    Réponses: 6
    Dernier message: 01/04/2005, 11h09
  5. jointures de plusieurs tables
    Par ben127 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/06/2004, 14h57

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