Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/11/2010, 14h52   #1
Invité de passage
 
Wolf Blue
Inscription : novembre 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Wolf Blue

Informations forums :
Inscription : novembre 2010
Messages : 10
Points : 0
Points : 0
Par défaut LIKE plusieurs choses

Comment afficher tous les éléments dont le début commence par une longue liste de possibilités issu d'une requête ?

Code :
1
2
3
4
SELECT * 
FROM nom_table1
WHERE libelle LIKE IN  
(SELECT libelle FROM nom_table2)
Merci beaucoup
bluewolf95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 14h59   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 957
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 957
Points : 18 165
Points : 18 165
Envoyer un message via MSN à CinePhil
En faisant une jointure entre les deux tables.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 15h48   #3
Invité de passage
 
Wolf Blue
Inscription : novembre 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Wolf Blue

Informations forums :
Inscription : novembre 2010
Messages : 10
Points : 0
Points : 0
merci, je vais tester ça :

Code :
1
2
3
SELECT * 
FROM nom_table tb1, nom_table tb2
WHERE tb1.libelle LIKE tb2.libelle
bluewolf95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 15h55   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 957
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 957
Points : 18 165
Points : 18 165
Envoyer un message via MSN à CinePhil
Tu n'as pas dû lire le lien sur les jointures jusqu'au bout car la syntaxe de ta jointure est obsolète depuis 18 ans !

LIKE une_valeur est équivalent à = une_valeur !
LIKE s'utilise avec le caractère générique %.

Et quitte à prendre des bonnes habitudes, autant éviter la guerre des étoiles !

Si tu veux une correspondance exacte entre les libellés, ta requête devrait être celle-ci :
Code :
1
2
3
SELECT les_colonnes_dont_tu_as_bessoin_et_pas_étoile 
FROM nom_table tb1
INNER JOIN nom_table tb2 ON tb1.libelle = tb2.libelle
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 16h38   #5
Invité de passage
 
Wolf Blue
Inscription : novembre 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Wolf Blue

Informations forums :
Inscription : novembre 2010
Messages : 10
Points : 0
Points : 0
Effectivement, ça se comporte comme un "=" alors que je souhaite un "contient".
Comment incorporer le "%" ?

Code :
1
2
3
SELECT tb1.id, tb1.libelle
FROM nom_table tb1
INNER JOIN nom_table tb2 ON tb1.libelle LIKE "%"&tb2.libelle&"%"
PS : Merci pour la doc sur les jointures que je vais lire attentivement.
bluewolf95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 16h41   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 957
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 10 957
Points : 18 165
Points : 18 165
Envoyer un message via MSN à CinePhil
Pas loin :
Code :
1
2
3
SELECT tb1.id, tb1.libelle
FROM nom_table tb1
INNER JOIN nom_table tb2 ON tb1.libelle LIKE CONCAT('%', tb2.libelle, '%')
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 17h31   #7
Invité de passage
 
Wolf Blue
Inscription : novembre 2010
Messages : 10
Détails du profil
Informations personnelles :
Nom : Wolf Blue

Informations forums :
Inscription : novembre 2010
Messages : 10
Points : 0
Points : 0
Génial, ça fonctionne ! merci merci !!
bluewolf95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h48.


 
 
 
 
Partenaires

Hébergement Web