Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
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 01/04/2011, 15h00   #1
Invité de passage
 
Femme
Étudiant
Inscription : septembre 2010
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2010
Messages : 72
Points : 3
Points : 3
Par défaut Jointure de tables

Bonjour à tous j'ai un soucis de jointure de table ! J'espère que vous saurez m'éclairer sur ce soucis

Voici ma requête
Code :
1
2
3
4
5
 
SELECT * 
FROM wow WOW, royaumes ROY 
WHERE WOW.IDROYAUMES=ROY.IDROYAUMES 
AND IDROYAUMES LIKE '%moon%'
Structure de ma table "wow"
Structure de ma table royaumes
Ma requêtes en brute
Code :
1
2
3
4
5
6
7
        $resultat = "SELECT * 
            FROM wow WOW, royaumes ROY
            WHERE WOW.IDROYAUMES=ROY.IDROYAUMES
        AND IDROYAUMES LIKE '%" . $_POST['recherche'] . "%'
 
    ";
        echo $resultat;
Lekno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 18h02   #2
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 440
Points : 6 440
Bonjour,

Première remarque, les jointures ne s'écrivent plus en séparant les tables par des virgules depuis 1992...
Une meilleure écriture consiste à utiliser la syntaxe normalisée (INNER JOIN).
Autre remarque, il faut préciser ce qui ne fonctionne pas dans ta requête (message d'erreur, résultat inattendu...). En l'occurence, dans le WHERE, comme la colonn IDROYAUMES est présente dans les 2 tables, il faut préciser de quel IDROYAUMES il s'agit (ce qui, dans le cadre d'une jointure interne, n'a aucune importance : l'une ou l'autre fait l'affaire).

Essaie la requête suivante :
Code :
1
2
3
4
SELECT * 
FROM wow WOW
INNER JOIN royaumes ROY ON WOW.IDROYAUMES=ROY.IDROYAUMES
WHERE  WOW.IDROYAUMES LIKE '%moon%'
Toutefois, il me paraît étonnant que IDROYAUMES (un identifiant) soit une chaîne de caractères. Est-ce que la condition ne devrait pas plutôt porter sur le champ ROYAUMES ? Auquel cas, la requête devient :
Code :
1
2
3
4
SELECT * 
FROM wow WOW
INNER JOIN royaumes ROY ON WOW.IDROYAUMES=ROY.IDROYAUMES
WHERE  ROY.ROYAUMES LIKE '%moon%'
ced
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 23h10   #3
Invité de passage
 
Femme
Étudiant
Inscription : septembre 2010
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2010
Messages : 72
Points : 3
Points : 3
Bonsoir, je te remercie pour ton aide précieuse, pour le code je suis étudiant en première année, je débute donc dans le dev !

je prend note de tes remarques je vais modifier mon code.

Merci je vais tester tes requêtes =)
Lekno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2011, 18h31   #4
Invité de passage
 
Femme
Étudiant
Inscription : septembre 2010
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2010
Messages : 72
Points : 3
Points : 3
Bonjour, après test je dois avoir une erreure dans la compréhension des jointures.

J'ai une table royaumes avec
idroyaumes nomroyaumes

et une table wow avec
idwow nompersonnage idroyaumes


dans idroyaumes est enregistré lors de la création du compte l'id du royaumes ( ex : 7, qui correspond dans ma table royaumes à Sinstralis par exemple )

je veux faire correspondre les deux tables entre elle, ma requête précédente ne me retourne aucun enregistrement!

Pour résumé la jointures des deux tables doit me permettre de retrouver via l'id royaumes de la table wow le nom du royaumes qui ce trouve dans la table royaumes je dois mettre trompé dans la syntaxe qui quelqu'un peut m'éclairer je l'en remercie

COrdialement
Lekno est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h15.


 
 
 
 
Partenaires

Hébergement Web