Aller au contenu

Petit pb de jointure


Slimer

Sujets conseillés

Bonsoir à tous

Je vous explique mon petit problème.

J'ai 3 tables

-news

-fichier

-matière

composition de news

id_news

titre

descriptif

date_upload

matiere

nom_fichier

type_fichier

composition de fichier

id_fichier

extension

image

composition de matiere

id_matiere

nom_matiere

J'ai fais 2 clés étrangères

matiere >id_matiere

type_fichier>id_fichier

je veux donc réaliser la requête suivante :

Sélectionner mes news en fonction de la matière choisi et que ces même news affichent l'image de la table fichier dont id_fichier =type_fichier

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Je ne trouve pas très logique d'appeler le champ id_fichier ou type_fichier selon

la table dans laquelle il se trouve. En plus ta table fichier ne contient pas des fichiers

mais des types de fichiers.

Donc ça aurait été plus clair de nommer tes champs/tables ainsi :

table news

id_news

titre

descriptif

date_upload

id_matiere

nom_fichier

id_type_fichier

table type_fichier

id_type_fichier

extension

image

Table matiere

id_matiere

nom_matiere

Ensuite, pour ta requête :

SELECT * FROM news
NATURAL JOIN type_fichier
NATURAL JOIN matiere
WHERE id_matiere=xxx

en imaginant que chaque news a un type de fichier et une matière définis.

M

Lien vers le commentaire
Partager sur d’autres sites

Ah ok donc en faite je dois remettre le nom des clés primaires de mes 2 autre tables dans ma table news

NATURAL JOIN évite de d'écrire la chose suivante

type_fichier.id_type_fichier

$requete= mysql_query ('SELECT * FROM news LEFT JOIN matiere ON news.id_matiere=matiere.id_matiere WHERE matiere.nom_matiere="'.$_GET["action"].'"')or die ("requete errone");

c'est bon sa marche :P

Modifié par Slimer
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...