Aller au contenu

Jointure SQL 2 Table


Sujets conseillés

Posté

bonsoir à tous,

Je cherche à joindre 2 table SQL qui ont un champs commun

TABLE1 et TABLE2

Ces 2 tables ont un champs avec le même nom et le même contenu qu'ont nommera champs_commun

Je voudrais afficher tous les résultats commun mais je n'y parviens pas.

J'ai essayé ce code

<?php
$sql  = 'SELECT * FROM TABLE1, TABLE2 WHERE TABLE1.champs_commun=TABLE2.champs_commun';

// on exécute cette requête
$resultat = mysql_query($sql) or die();

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($resultat))
   {
// echo ' '.$sql.' <br />';

echo ''.$data['champs_commun'].'<br />';
   }

/ on ferme la connexion à la base de données.
mysql_close ();
?>

Posté

Bonsoir,

il faut utiliser la clause JOIN, voici un explicatif de cette clause avec exemples (mais en anglais) : http://www.w3schools.com/sql/sql_join.asp

A toi de voir s'il te faut une jointure gauche, droit, simple, ... Dans la plus part des car un "LEFT OUTER JOIN" sera suffisant.

Tu noteras qu'il n'y a pas besoin d'utiliser une clause WHERE pour effectuer la jointure, bien que dans une certaine logique c'est le procédé qui est utilisé.

Posté

Bonsoir,

J'ai essayé avec l'article indiqué mais je pense que mes requêtes sont correctes, le truc c'est que mes echo ne fonctionnent pas et j'ai des erreurs

Unable to save result set

En fait, c'est que la boucle doit peut-être être fait d'une autre manière lorsqu'on travaille sur 2 table non ?

Posté (modifié)
Unable to save result set

Une de tes tables doit avoir un problème. Si tu utilises phpmyadmin tu peux réparer tes tables à partir de l'onglet "opérations" sinon il faut utiliser la commande REPAIR TABLE...

Ensuite la requête suivante ne devrait générer aucune erreur :

$sql  = 'SELECT TABLE1.champs_commun FROM TABLE1, TABLE2 WHERE TABLE1.champs_commun=TABLE2.champs_commun';

Modifié par dièse
Posté

Bonjour,

J'ai vérifié, analysé et optimisé mais tout semble correct à ce niveau là !

Posté

Merci de l'aide, voici ce que j'obtiens

Warning: mysql_query(): Unable to save result set in .... on line 8

qui correspond à $resultat = mysql_query($sql) or die();

Veuillez vous connecter pour commenter

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



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