IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

left join assez spécial


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 109
    Points : 70
    Points
    70
    Par défaut left join assez spécial
    ..

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    left outer join ma_table b on b.ma_cond = 'XX' and b.ma_jointure = a.ma_jointure

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 109
    Points : 70
    Points
    70
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. count() dans *plusieurs* LEFT JOIN
    Par silver_dragoon dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/06/2004, 17h20
  2. LEFT JOIN avec Oracle 8i ne va pas... doit utiliser (+)
    Par loikiloik dans le forum Langage SQL
    Réponses: 10
    Dernier message: 21/04/2004, 16h38
  3. Interbase et left join
    Par Zog dans le forum Bases de données
    Réponses: 4
    Dernier message: 23/03/2004, 08h55
  4. Non coincident MySQL (Left Join)
    Par Remiguel dans le forum Requêtes
    Réponses: 6
    Dernier message: 03/11/2003, 21h25
  5. Export d'une vue avec LEFT JOIN
    Par schnourf dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/05/2003, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo