problème de jointure mysql : je m'en sors pas !!
5 messages
• Page 1 sur 1
- pppplus
- Nouveau WRInaute

- Messages: 12
- Inscription: 30 Oct 2006
problème de jointure mysql : je m'en sors pas !!
Je n'arrive pas à faire une requête avec une jointure, si quelqu'un peut m'aider... Car même en lisant tous les exemples sur le net, je ne m'en sors pas...
Alors mes tables !
table1 =>cpa_cp_id, cpa_sitediff, actif
table2 =>visu_id_camp, visu_id (clé unique) + tous les autres champs
table3 =>cpa_cp_id (clé unique)
donc dans mes tables, les champs
table1.cpa_cp_id = table2.visu_id_camp = table3.cpa_cp_id
Je cherche à récupérer toutes les valeurs de la table 2, en vérifiant les choses suivantes :
- que le champ table2.visu_id = $id
- que le champ table1.cpa_sitediff = $diff existe, avec cpa_cp_id = visu_id de table2 et statut actif (=1 dans table1)
Donc pour l'instant, j'ai fait (j'ai pas mis * mais chaque champ !):
Mais je n'arrive pas à comprendre comment ajouter le reste (en espérant que mon début soit déjà bon...
Et j'espère que mon explication est à peu près compréhensible..
Merci d'avance pour votre aide
Alors mes tables !
table1 =>cpa_cp_id, cpa_sitediff, actif
table2 =>visu_id_camp, visu_id (clé unique) + tous les autres champs
table3 =>cpa_cp_id (clé unique)
donc dans mes tables, les champs
table1.cpa_cp_id = table2.visu_id_camp = table3.cpa_cp_id
Je cherche à récupérer toutes les valeurs de la table 2, en vérifiant les choses suivantes :
- que le champ table2.visu_id = $id
- que le champ table1.cpa_sitediff = $diff existe, avec cpa_cp_id = visu_id de table2 et statut actif (=1 dans table1)
Donc pour l'instant, j'ai fait (j'ai pas mis * mais chaque champ !):
- Code: Tout sélectionner
SELECT * FROM table2
LEFT JOIN table
ON table3.cpa_cp_id=table2.visu_id
WHERE visu_id='$id'
Mais je n'arrive pas à comprendre comment ajouter le reste (en espérant que mon début soit déjà bon...
Et j'espère que mon explication est à peu près compréhensible..
Merci d'avance pour votre aide
- BigBook_
- Nouveau WRInaute

- Messages: 9
- Inscription: 28 Aoû 2007
Et sans LEFT JOIN? Je sais que c'est moins propre, mais est-ce que ceci marche :
EDIT : Pardon, j'ai lu un peu vite. Donc ce que tu as fonctionne, et c'est le reste des conditions qui te manquent?
- Code: Tout sélectionner
SELECT * FROM table1, table2, table3
WHERE table1.cpa_cp_id = table2.visu_id_camp
AND table2.visu_id_camp = table3.cpa_cp_id
AND table1.cpa_sitediff IS NOT NULL
AND table2.visu_id = '.$id.'
AND table1.cpa_sitediff = '.$diff.'
AND table1.actif = 1
EDIT : Pardon, j'ai lu un peu vite. Donc ce que tu as fonctionne, et c'est le reste des conditions qui te manquent?
-

arnaudmn - WRInaute passionné

- Messages: 1536
- Inscription: 11 Mai 2005
Re: problème de jointure mysql : je m'en sors pas !!
[quote="pppplus"]
Je cherche à récupérer toutes les valeurs de la table 2, en vérifiant les choses suivantes :
- que le champ table2.visu_id = $id
- que le champ table1.cpa_sitediff = $diff existe, avec cpa_cp_id = visu_id de table2 et statut actif (=1 dans table1)
Déja, y'a un problème : tu peux pas mettre table3 dans le ON si la table n'est pas dans la jointure
SELECT table2.*
from table2 inner join table1 on table1.cpa_cp_id = table2.visu_id_camp
where table2.visu_id=$id
and table1.cpa_sitediff = $diff
and table1.actif=1
Y'a pas besoin de jointure gauche si tu veux des lignes qui existent dans les 2 tables.
Je cherche à récupérer toutes les valeurs de la table 2, en vérifiant les choses suivantes :
- que le champ table2.visu_id = $id
- que le champ table1.cpa_sitediff = $diff existe, avec cpa_cp_id = visu_id de table2 et statut actif (=1 dans table1)
- Code: Tout sélectionner
SELECT * FROM table2
LEFT JOIN table
ON table3.cpa_cp_id=table2.visu_id
WHERE visu_id='$id'
Déja, y'a un problème : tu peux pas mettre table3 dans le ON si la table n'est pas dans la jointure
SELECT table2.*
from table2 inner join table1 on table1.cpa_cp_id = table2.visu_id_camp
where table2.visu_id=$id
and table1.cpa_sitediff = $diff
and table1.actif=1
Y'a pas besoin de jointure gauche si tu veux des lignes qui existent dans les 2 tables.
- pppplus
- Nouveau WRInaute

- Messages: 12
- Inscription: 30 Oct 2006
Re: problème de jointure mysql : je m'en sors pas !!
arnaudmn a écrit:
Déja, y'a un problème : tu peux pas mettre table3 dans le ON si la table n'est pas dans la jointure
Oui erreur de frappe, c'était bien table3 !
Bon en me relisant en effet, je n'ai pas besoin de faire référence à cette table3 ! Et c'est bien plus simple avec 2 tables à lier, que 3...
Bon je relis vos propositions, je teste et je vous tiens au courant !
En tout cas merci !
- pppplus
- Nouveau WRInaute

- Messages: 12
- Inscription: 30 Oct 2006
Merci Arnaud, c'est apparemment parfait ta méthode !
Je me suis un peu perdu hier avec ma 3ème table... qui ne sert à rien !
J'ai encore du mal avec mes jointures...
BigBook, ça marche pas pour la tienne... mais merci tout de même !
Je me suis un peu perdu hier avec ma 3ème table... qui ne sert à rien !
J'ai encore du mal avec mes jointures...
BigBook, ça marche pas pour la tienne... mais merci tout de même !
5 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- MYSQL : jointure
- jointure mysql
- Jointure sur 2 serveurs Mysql ?
- Vitesse requetes jointure mysql, et Indexes
- Mysql.._[JOINTURE - PRIMARY KEY - UNIQUE - INDEX ]
- (Résolu par une jointure)[MYSQL] Dissocier ma requête ?
- Jointure sql problème inner join
- JOINTURE SQL: problème de doublon
- Problème choix syntaxe jointure
- problème de jointure de table avec SUM et GROUP BY
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
- Sortie officielle de GoogleStats v2.0 ! - 23-02-2003
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- Le WRInaute du moment - 24-10-2006
- Outil : analyse de l'historique des backlinks d'un domaine - 24-04-2009
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
