Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/02/2012, 13h14   #1
Nouveau Membre du Club
 
Inscription : juillet 2009
Messages : 110
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 110
Points : 37
Points : 37
Par défaut left join assez spécial

..
gianni7033 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 13h40   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 669
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 669
Points : 2 677
Points : 2 677
Bonjour,

Citation:
centre_interet (grande table qui contient TOUT : tous les films, tous les acteurs, et plein d'autres données)
id
t (type de centre d'intéret : film OU acteur OU autre chose)
fk_id ( l'id en relation : film.id si t =film OU acteur.id si t = acteur)
Vous feriez bien de faire un tour sur le forum de modélisation.

Pour votre 2eme requête, j'en déduis que membre'Id est une colonne de la table mot_cle.

Si vous mettre une condition dans la clause where d'une colonne appartenant à une table jointe en externe alors la jointure devient une jointure interne.

Il faut remonter cette conditions dans la clause de jointure.
Code :
1
2
 
LEFT OUTER JOIN ma_table b ON b.ma_cond = 'XX' AND b.ma_jointure = a.ma_jointure
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 14h01   #3
Nouveau Membre du Club
 
Inscription : juillet 2009
Messages : 110
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 110
Points : 37
Points : 37
Code :
1
2
3
4
5
6
SELECT film.id, film.nom, centre_interet.id AS 'centre_interetId', mot_cle.id AS 'mot_cleId'
FROM acteur_film
INNER JOIN film ON filmId = film.id
INNER JOIN centre_interet ON centre_interet.fk_id = film.id
LEFT JOIN mot_cle ON mot_cle.centre_interetId = centre_interet.id AND mot_cle.membreId = 20
WHERE t='film' AND acteurId = 35
c'est parfait ça a l'air de fonctionner, je vais tester quelques minutes

je ne connaissais pas ce AND sur un left join
gianni7033 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h43.


 
 
 
 
Partenaires

Hébergement Web