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 080
    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 080
    Points : 30 802
    Points
    30 802
    Par défaut
    Cela pourrait se résoudre avec une UNION, mais je ne sais pas si ton... machin sait faire ça.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    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 198
    Points : 12 774
    Points
    12 774
    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 : 60
    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 031
    Points
    34 031
    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."%' 
    ";
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  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