Sujet : [RESOLU] Requêtes avec jointures

Bonjour,

Je vais essayer de faire simple pour ma demande d'aide.
Je souhaite alimenter une liste déroulante avec une requête SQL qui interroge pas moins de 6 tables.
Cette liste doit afficher toutes les occurences de la table 1 (joignant les tables 2, 3, 4 , 5) seulement si la table 6 ne comporte pas l'ID unique de la table 1 :
Exemple de ma requête :
SELECT cavId, appNom, typNom, vinDom, vinBio, cavMil, btlQte FROM ((((((tbl_cave INNER JOIN tbl_vins ON vinId=cavVin) INNER JOIN tbl_vin_type ON cavType=typId) INNER JOIN tbl_vin_appellation ON vinApp=appId) INNER JOIN tbl_profils ON prfId=cavPrf) INNER JOIN tbl_vin_bouteille ON tbl_cave.cavBtle=btlId) INNER JOIN tbl_cave_graphique ON cgrCave<>cavId) WHERE prfId='1' ORDER BY cavMil, vinDom
A partir de là, je souhaite afficher uniquement les enregistrements non présent dans la table tbl_cave_graphique.

J'espère que vous pourrez m'aider un temps soi peu dans ma quête.

Amicalement,
Thierry

2

Re: [RESOLU] Requêtes avec jointures

Je suis pas un pro du SQL. Mais déjà je suis pas sûr que les parenthèse après le FROM soit nécessaire. Essai en les retirant.

Sinon essai déjà de n'afficher que la table 1 avec la condition que l'enregistrement ne soit pas dans la 6, dans PHPmyAdmin. Et si ca fonctionne ajoute les autres tables. Sinon PHPmyAdmin te renverra l'erreur MySQL qui t'aidera grandement.

Et sinon pour que l'on t'aide plus il faut que tu donnes tes structures de Tables

Re: [RESOLU] Requêtes avec jointures

Merci pour ta réponse,
les parenthèses sont pour la syntaxique.
Je vais essayer ta proposition ce midi et je tiendrais le fil au courrant.
Pour ce qui est de la structure, je vais préparer cela au cas...
Bonne journée

4

Re: [RESOLU] Requêtes avec jointures

Tu peux peut être rajouter une clause HAVING à la fin de ta requête pour faire un filtrage final qui va virer les élements que tu ne désires pas garder.

lesCigales.ORG sysadm1n
L'hébergeur qui sent bon la lavande - Un control panel qu'il est chouette - Viendez nous parler!
"All that is necessary for evil to triumph is for good men to do nothing."

Re: [RESOLU] Requêtes avec jointures

J'ai essayé avec HAVING mais sans succès, mauvaise formulation surement ;o).

J'ai tenté avec ceci (requête simplifiée) avec succès :
SELECT cavId, cavMil FROM tbl_cave WHERE cavPrf='1' AND cavId NOT IN (SELECT cgrCave FROM tbl_cave_graphique) ORDER BY cavMil
Trouvé ici : http://sqlpro.developpez.com/cours/sqla … es/#L3.5.2

Je vais maintenant reconstruire ma requête complète et je vous tiendrais informé.
Merci de votre aide

6

Re: [RESOLU] Requêtes avec jointures

Je ne me rappelai plus de cette clause NOT in associé à une autre requête. Ça commence à faire des requêtes d'homme, MySQL ne s'ennuiera plus smile

Sympa le lien wink

Re: [RESOLU] Requêtes avec jointures

J'ai trouvé avec ceci à priori, il me faut tester cela confortablement installé smile
Je vous tiendrais informé si ça peut servir :
SELECT DISTINCT cavId, appNom, typNom, vinDom, vinBio, cavMil, btlQte FROM ((((((tbl_cave INNER JOIN tbl_vins ON vinId=cavVin) INNER JOIN tbl_vin_type ON cavType=typId) INNER JOIN tbl_vin_appellation ON vinApp=appId) INNER JOIN tbl_profils ON prfId=cavPrf) INNER JOIN tbl_vin_bouteille ON tbl_cave.cavBtle=btlId) LEFT JOIN tbl_cave_graphique ON cgrCave=cavId) WHERE prfId='".$prfId."' AND cgrCave IS UNKNOWN ORDER BY cavMil, vinDom

Merci dans tous les cas

Re: [RESOLU] Requêtes avec jointures

ça marche nickel,
merci à tous.

Re: [RESOLU] Requêtes avec jointures

Comment on le post ??? smile