Page 1 sur 1

Problème avec request 3 tables

Posté : 09 nov. 2008, 22:16
par auclairp
Bonjour je tente de faire une REQUEST sur 3 tables différentes avec en références 1 champ unique

les tables sont:
- description
- all_loan
- loan

et voici mon code
$champs    = "description.code, description.nom, description.nomfr, description.genre, description.description, description.video, description.prix, description.HDDVD, loan.loanto, all_loan.user";	
	$nom_table =  " description 
					LEFT JOIN loan 
					ON description.code=loan.code
					LEFT JOIN all_loan 
					ON description.code=all_loan.code";

$result = mysql_query("SELECT ".$champs." FROM ".$nom_table." ORDER BY code DESC");  


while ($rows=mysql_fetch_array($result))
	{
Oui le résultat fonctionne mais il faonctionne TROP, il s'agit d'une liste de film, que je prètes à quelques amis, alors vous imaginez que ma liste est lister dans "description" et mes amis sur "loan" et "all_loan", mais le problème est que il m'affiche TOUT, ce que je veux dire c'es tque j'ai des doublon lorsque je liste mes films.

Si j'ai prêté un film X à 5 reprises, bien il va sortir 6 fois, 1 fois venant de "description" et 5 fois des autres tables.

Pouvez-vous m'aider

MERCI

Posté : 09 nov. 2008, 22:34
par Aureusms
Essaye cela :
$champs    = "description.code, description.nom, description.nomfr, description.genre, description.description, description.video, description.prix, description.HDDVD, loan.loanto, all_loan.user";    
$nom_table =  " description,loan,all_loan 
                    WHERE description.code=loan.code
                    AND description.code=all_loan.code
                    LIMIT 1"; 

Posté : 10 nov. 2008, 01:22
par fred99
$nom_table =  " description 
                    LEFT JOIN loan 
                    ON description.code=loan.code
                    LEFT JOIN all_loan 
                    ON description.code=all_loan.code
GROUP BY description.code"; 
Test ça voir

Posté : 10 nov. 2008, 05:23
par auclairp
$nom_table =  " description 
                    LEFT JOIN loan 
                    ON description.code=loan.code
                    LEFT JOIN all_loan 
                    ON description.code=all_loan.code
GROUP BY description.code"; 
Test ça voir
Parfait, ca semble très bien fonctionner.


Petite question, comment faire si les deux TABLES son sur 2 Bdd différentes,

Ex. Description est sur la bdd "DVD" et les deux loan, all_loan sur la BDD "Usager"

Merci encore pour la première réponse