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 :

select table d'association et group contact


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2013
    Messages : 19
    Points : 17
    Points
    17
    Par défaut select table d'association et group contact
    Bonjour

    J'ai trois tables films ,type et une table d'association films type .

    Je cherche à recuperer tous les films qui sont liés à un type et sont aussi qui sont pas dans la table d'association filmstype

    Mes tables
    film : id_film,Nom, support
    type: id_ type, comedie,drame
    filmtype: id_film,id_ type , notespectateur

    ma requete qui me ramene que les films lié à un type et regrouper par support

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    SELECT id_film ,nom
     
    GROUP_CONCAT(CONVERT(support, CHAR(255)) ORDER BY support ASC SEPARATOR ' - ') AS supports,
     
    			   FROM `support` ,`film`
     
    			   WHERE
     
    			   film.id_film=filmtype.id_film
    			   and
     
    			   filmtype.id_type=type.id_type
    			   Group by nom
                                             ORDER BY (`id_film`) DESC

    J'ai des films que j ai que sur ma table film que j'affiche pas .

    Merci d avance

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Points : 18 395
    Points
    18 395
    Par défaut
    Il manque la table filmtype et type dans votre FROM, qui contient elle la table support qui n'est pas une table d'après votre description.
    Je ne vois même pas comment votre requête peut être exécutée.

    Quant à votre problème, regardez du côté des jointures externes.

  3. #3
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par fatimaezzahra125 Voir le message
    Bonjour

    J'ai trois tables films ,type et une table d'association films type .

    Je cherche à recuperer tous les films qui sont liés à un type et sont aussi qui sont pas dans la table d'association filmstype

    Mes tables
    film : id_film,Nom, support
    type: id_ type, comedie,drame
    filmtype: id_film,id_ type , notespectateur

    ma requete qui me ramene que les films lié à un type et regrouper par support
    Sans plus de détails quant au type de données, je verrai bien quelque chose dans le genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select f.id_film ,f.nom,GROUP_CONCAT(CONVERT(f.support, CHAR(255)) ORDER BY support ASC SEPARATOR ' - ') AS supports
    from filmtype ft left outer join film f on ft.id_film=f.id.film
    where id_type=...
    group by supports
    Avec cette requête tu obtiens les films qui sont liés à un type et quant il n'y a pas de film lié normalement tu as <null> dans les colonnes de la table film jointe.

  4. #4
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2013
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    l'association n'est pas faite automatique en fait c'est moi qui lié un film à un type:
    dans ma table films j ai des film lié à un type et d autes qui le sont pas ceux qui sont liés à un type sont dans la table filmtype

    ma requete me ramene que ceux présent dans la table filmtype alors que mois je veux récupérer ceux qui sont liés et ceux qui ne le sont pas

  5. #5
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par fatimaezzahra125 Voir le message
    l'association n'est pas faite automatique en fait c'est moi qui lié un film à un type:
    dans ma table films j ai des film lié à un type et d autes qui le sont pas ceux qui sont liés à un type sont dans la table filmtype

    ma requete me ramene que ceux présent dans la table filmtype alors que mois je veux récupérer ceux qui sont liés et ceux qui ne le sont pas
    D'où le principe de la jointure externe. Si tu veux récupérer et les films qui sont liés à un type dans filmtype et ceux qui ne le sont pas, il te faut faire une jointure externe sur l'une ou l'autre table (après c'est une question de gout, moi je préfère left mais bon...).

    Dans l'exemple de requête précédente, tu peux très bien inverser film et filmtype (ou simplement s/left/right). Dans ce cas tu auras ta table complète des films. Les lignes qui correspondent dans filmtype seront affichés et lorsqu'il n'y a pas de correspondance, ce sera <null>.

    Après, une simple requête avec is null sur un des champs de la table filmtype te permettra par exemple de découvrir les films présents dans la table films mais pas encore liés dans filmtype.

  6. #6
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Points : 889
    Points
    889
    Par défaut
    Bonjour.
    Je trouve que tu te compliques inutilement les choses avec ta table type.
    Pourquoi, dans ta table film, n'ajoutes tu pas simplement un champ type, de type ENUM ?

  7. #7
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2013
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    merci
    j ai fait des jointes externes et ça marche

  8. #8
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 048
    Points : 23 810
    Points
    23 810
    Par défaut
    Citation Envoyé par ypcman Voir le message
    Bonjour.
    Je trouve que tu te compliques inutilement les choses avec ta table type.
    Pourquoi, dans ta table film, n'ajoutes tu pas simplement un champ type, de type ENUM ?
    Notamment parce que le type ENUM est propre à MySQL et ne respecte pas la norme SQL

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

Discussions similaires

  1. Problème de table d'association dans un DBGrid
    Par Mestoph dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/03/2007, 18h17
  2. Interaction select / table background
    Par ravaza dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/02/2007, 10h51
  3. [MySQL] Problème d'insertion de données dans table d'associations
    Par Yukhaa dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 07/02/2006, 18h10
  4. [VB6]Problème dajout dans une Table Access à cause des group
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/02/2006, 11h06
  5. Réponses: 5
    Dernier message: 28/10/2005, 17h27

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