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 :

selection doublé ?


Sujet :

Requêtes MySQL

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut selection doublé ?
    Bonsoir tous le monde, j'ai un souçi avec une requête sql , en faite je doit récupérer un genre d'articles et afficher le tout.
    J'ai séparer ceux-ci en deux tables :
    db_movie :
    1. id
    2. years
    3. title
    4. post_desc
    5. word

    db_pvehicles:
    1. id
    2. years
    3. pictures
    4. path

    Lorsque je procède a la requete j'ai bien tous ce que je souhaite sauf que si j'ai deux images dans la même année il récupère l'articles 2 fois au lieux d'appliquer les 2 images dans cet article.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT db_movie.years, db_movie.post_desc, db_movie.title, 
      db_movie.word, db_pvehicles.path, db_pvehicles.pictures 
    FROM db_movie JOIN db_pvehicles ON (db_movie.years = db_pvehicles.years)
    Comment faire pour récupérer l'articles complet avec toutes les photos le correspondant .
    Donc pour l'instant j'ai par exemple :
    2004
    Lorem ipsum dolor sit amet.
    Lorem Ipsum
    Nam diam turpis, blandit id, vulputate nec, laoree...
    tournage1
    photos01.jpg
    2004
    Lorem ipsum dolor sit amet.
    Lorem Ipsum
    Nam diam turpis, blandit id, vulputate nec, laoree...
    tournage1
    photos02.jpg
    Alors qu'il faudrai :
    2004
    Lorem ipsum dolor sit amet.
    Lorem Ipsum
    Nam diam turpis, blandit id, vulputate nec, laoree...
    tournage1
    photos01.jpg
    tournage1
    photos2.jpg

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    OK, mais comment affiches-tu les deux db_pvehicles.path et db_pvehicles.pictures si tu n'as qu'une seule ligne pour l'article ?

  3. #3
    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 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Bonjour,

    Visiblement, ce que tu tentes de faire tient plus de la cosmétique, et un SGBDR n'est pas fait pour ça...
    C'est normal, si il y a deux images dans la table db_pvehicles pour un même article que la requête renvoie 2 lignes. Tu peux tenter une double jointure sur db_pvehicles (la deuxième jointure étant un LEFT JOIN) en compliquant un peu la condition de jointure, mais le même problème se reposera avec 3, 4, 5... images pour un même article.

    Bref, c'est plus à l'application de faire le tri.
    Toutefois, si tu es sûr d'avoir au maximum 2 images par articles, ça reste faisable...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Citation Envoyé par ced Voir le message
    Toutefois, si tu es sûr d'avoir au maximum 2 images par articles, ça reste faisable...
    Même avec plus d'images en fait, mais j'aimerais avoir la spec de présentation.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Mon client souhaite afficher une filmographie, j'ai alors écris une class php pour gèrer l'application.
    Ceci dit je n'avais pas prévu que le client souhaitais un nombre indéfini d'image par articles.
    Point dfe vue esthétique j'utilise smarty afin de bien séparer le php du html mais c'est un autre contexte.
    Donc comme je vous l'ai dit j'ai :
    l'année ,le titre, une description, le contenu
    Mais je fais une jointure sur une autre table pour récupérer une ou plusieurs images avec leur chemin.
    Le problème étant qu'au lieux de lister toute les images de 2004 dans l'articles je me retrouve avec un articles pour l'année 2004 par photo ce qui franchement n'est pas ce que je recherche.
    Je peux cependant séparer les requêtes mais de toute façon il me faut tous dans la même année.
    Désiré vous un dump de la base ?
    PS: Vous êtes l'auteur du livre mysql5 des éditions micro applications ?

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Citation Envoyé par gtraxx Voir le message
    Mon client souhaite afficher une filmographie, j'ai alors écris une class php pour gèrer l'application.
    Ceci dit je n'avais pas prévu que le client souhaitais un nombre indéfini d'image par articles.
    Point dfe vue esthétique j'utilise smarty afin de bien séparer le php du html mais c'est un autre contexte.
    Donc comme je vous l'ai dit j'ai :
    l'année ,le titre, une description, le contenu
    Mais je fais une jointure sur une autre table pour récupérer une ou plusieurs images avec leur chemin.
    Le problème étant qu'au lieux de lister toute les images de 2004 dans l'articles je me retrouve avec un articles pour l'année 2004 par photo ce qui franchement n'est pas ce que je recherche.
    Je peux cependant séparer les requêtes mais de toute façon il me faut tous dans la même année.
    OK, mais tu ne me dis toujours pas comment présenter deux images sur une seule ligne. Autrement dit, tant que tu ne sors que les articles, il n'y a pas de problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    année, titre, description, contenu
    2007, Bugsy Malone, blablabla, blobloblo
    Mais si tu ajoutes deux images, ça ne rentre plus dans une seule ligne. Donc soit tu conserves le doublon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    année, titre, description, contenu, path, picture
    2007, Bugsy Malone, blablabla, blobloblo, img/truc.jpg, truc.jpg
    2007, Bugsy Malone, blablabla, blobloblo, img/trac.jpg, trac.jpg
    et tu utilises PHP (ou autre) pour corriger l'affichage ensuite.

    Ou bien, tu agrèges les différentes images dans une liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    année, titre, description, contenu, path, picture
    2007, Bugsy Malone, blablabla, blobloblo, img/truc.jpg-img/trac.jpg, truc.jpg-trac.jpg
    Dernière solution, tu rajoutes des colonnes, mais ça suppose que tu connaisses le nombre maximum d'images :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    année, titre, description, contenu, path1, picture1, path2, picture2,
    2007, Bugsy Malone, blablabla, blobloblo, img/truc.jpg, truc.jpg, img/trac.jpg, trac.jpg
    Citation Envoyé par gtraxx Voir le message
    Désirez-vous un dump de la base ?
    pas la peine, merci !
    Citation Envoyé par gtraxx Voir le message
    PS: Vous êtes l'auteur du livre mysql5 des éditions micro applications ?
    yep !

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Après consultation de mon dossier je remarque que le client souhaite 4 photos maximum par article donc je suppose que la méthode des colonnes est la mieux adapté.
    Ben je pense , je préfère modifier la requête et ajouter des colonnes que de chipoter dans ma big class
    PS: Bon bouquin, je l'ai acheté à sa sortie chez amazon , mais j'avoue que je ne l'ai pas encore lu entièrement

  8. #8
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Citation Envoyé par gtraxx Voir le message
    Après consultation de mon dossier je remarque que le client souhaite 4 photos maximum par article donc je suppose que la méthode des colonnes est la mieux adapté.
    Bon, la solution la plus compliquée, je n'aurais pas dû la proposer celle-là

    Pourquoi fais-tu la jointure sur db_movie.years = db_pvehicles.years ? Au passage, pourquoi tes noms d'objets parlent de films et de véhicules, alors que tu parles d'articles et d'images ?

  9. #9
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Ben cela ressemble au principe des articles mais c'est une filmographie classé par année, mais j'aurai du m'y prendre autrement.
    Pourquoi fais-tu la jointure sur db_movie.years = db_pvehicles.years ?
    Parce que je fais mon get sur years en utilisant BindParam de PDO pour le système d'archives et je pensais que lié la filmographie au photos des véhicules étais un bon moyen d'avoir une structure claire.

  10. #10
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Citation Envoyé par gtraxx Voir le message
    Parce que je fais mon get sur years en utilisant BindParam de PDO pour le système d'archives et je pensais que lié la filmographie au photos des véhicules étais un bon moyen d'avoir une structure claire.
    C'est très clair, j'aurais dû y penser !

    Bon, je vais supposer que ça veut dire que tes years sont des ID de db_movie que que tu retouves sur db_pvehicles...

    D'abord, on va numéroter les photos de 1 à 4 pour chaque article :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT V1.years, V1.pictures, V1.path, COUNT(*) AS Num
    FROM db_pvehicles V1
      INNER JOIN db_pvehicles V2 ON V1.id >= V2.id AND V1. years = V2.years
    Ensuite, on utilise ça pour générer la requête avec les colonnes... ça doit donner qqch comme ça :
    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
    16
    17
    18
    19
    20
    21
    22
    23
     
    SELECT M.years, M.post_desc, M.title, M.word, 
      V1.path AS Path1, V1.pictures AS Pic1,
      V2.path AS Path2, V2.pictures AS Pic2,
      V3.path AS Path3, V3.pictures AS Pic3,
      V4.path AS Path4, V4.pictures AS Pic4
    FROM db_movie M
      INNER JOIN (SELECT V1.years, V1.pictures, V1.path, COUNT(*) AS Num
        FROM db_pvehicles V1 INNER JOIN db_pvehicles V2 ON V1.id >= V2.id AND V1. years = V2.years
        HAVING COUNT(*) = 1
    ) I1 ON M.years = I1.years
      LEFT JOIN (SELECT V1.years, V1.pictures, V1.path, COUNT(*) AS Num
        FROM db_pvehicles V1 INNER JOIN db_pvehicles V2 ON V1.id >= V2.id AND V1. years = V2.years
        HAVING COUNT(*) = 2
    ) I2 ON M.years = I2.years
      LEFT JOIN (SELECT V1.years, V1.pictures, V1.path, COUNT(*) AS Num
        FROM db_pvehicles V1 INNER JOIN db_pvehicles V2 ON V1.id >= V2.id AND V1. years = V2.years
        HAVING COUNT(*) = 3
    ) I3 ON M.years = I3.years
      LEFT JOIN (SELECT V1.years, V1.pictures, V1.path, COUNT(*) AS Num
        FROM db_pvehicles V1 INNER JOIN db_pvehicles V2 ON V1.id >= V2.id AND V1. years = V2.years
        HAVING COUNT(*) = 4
    ) I4 ON M.years = I4.years

  11. #11
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Donc je créer bien des colonnes supplémentaire pour utiliser ses requêtes, c'est peut être la requête qui me perturbe faut dire je ne la comprend pas trop
    PS: faut pas oublier qu'il y as un véritable id sur chaque table avec auto_incrément
    Je vous demande sa avant de créer quoi que ce soit

  12. #12
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Citation Envoyé par gtraxx Voir le message
    Donc je créer bien des colonnes supplémentaire pour utiliser ses requêtes, c'est peut être la requête qui me perturbe faut dire je ne la comprend pas trop
    Vu que je ne comprends rien à ton modèle, c'est un peu difficile à expliquer... commençons par la question cruciale :
    Citation Envoyé par gtraxx Voir le message
    PS: faut pas oublier qu'il y as un véritable id sur chaque table avec auto_incrément
    Je vous demande sa avant de créer quoi que ce soit
    Dans ta requête, tu faisais la jointure sur years. Je t'ai demandé pourquoi, et ce que j'ai compris de ta réponse peut se résumer à "ça avait l'air cool de passer par là". J'ai donc décidé de te faire confiance sur ce point .

  13. #13
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Je vais faire plus simple :
    MA table db_movie :
    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
    16
    17
    18
    19
    20
    -
    -- Structure de la table `db_movie`
    --
     
    CREATE TABLE IF NOT EXISTS `db_movie` (
      `idmovie` int(5) NOT NULL auto_increment,
      `years` year(4) NOT NULL,
      `post_desc` varchar(255) NOT NULL,
      `title` varchar(50) NOT NULL,
      `word` varchar(255) NOT NULL,
      PRIMARY KEY  (`idmovie`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
     
    --
    -- Contenu de la table `db_movie`
    --
     
    INSERT INTO `db_movie` (`idmovie`, `years`, `post_desc`, `title`, `word`) VALUES
    (1, 2004, 'Lorem ipsum dolor sit amet.', 'Lorem Ipsum', 'Nam diam turpis, blandit id, vulputate nec, laoreet quis, est. Sed gravida. Suspendisse potenti. Nunc vehicula urna vitae dolor. Cras iaculis imperdiet risus. Curabitur euismod molestie ante. Pellentesque egestas mi quis magna. Sed pretium. Nam in lacus.'),
    (2, 2005, 'Proin condimentum quam', 'nouveau teste', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut id mauris. Aliquam erat volutpat. Nunc rhoncus vestibulum risus. Donec leo risus, eleifend ut, euismod in, ultrices id, turpis. Nulla purus risus, posuere nec, lobortis ac, sagittis sed, turpis.');
    Ma table db_pvehicles:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    --
    -- Base de données: `db_movievehicles`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `db_pvehicles`
    --
     
    CREATE TABLE IF NOT EXISTS `db_pvehicles` (
      `idmovie` int(5) NOT NULL auto_increment,
      `years` year(4) NOT NULL,
      `path` varchar(255) NOT NULL,
      `pictures` varchar(255) NOT NULL,
      PRIMARY KEY  (`idmovie`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
     
    --
    -- Contenu de la table `db_pvehicles`
    --
     
    INSERT INTO `db_pvehicles` (`idmovie`, `years`, `path`, `pictures`) VALUES
    (1, 2004, 'tournage1', 'photos01.jpg'),
    (2, 2005, 'tournage2', 'photo2.jpg');
    Je pense que lié les tables par l'année étais peut être une mauvaise idée mais je veux bien l'adapté, mon code php n'est pas fixe si vous voyez comment faire je suivrai vos conseils.
    Les 2 tables ne sont pas encore modifié

  14. #14
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Bon en gros je doit supprimer l'année qui ne me sert a rien vu que certain tournage sont réaliser la même année donc je doit trouver autre chose pour lié les tables movie et vehicule sachant que mon problème avec les photos est toujours d'actualité.
    je suis preneur de toutes les idées dans sql avec une bonne grosse requête

  15. #15
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Que dirais-tu de ça ?

    articles :

    1. id_article
    2. years
    3. title
    4. post_desc
    5. word

    photos :

    1. id_photo
    2. years
    3. pictures
    4. path
    5. id_article

  16. #16
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    oui cela me semble très bien une liaison par clé primaire
    Mais je pense ajouter :
    articles :

    1. id_article
    2. years
    3. title
    4. post_desc
    5. word

    photos :

    1. id_photo
    2. years
    3. pictures
    4. pictures2
    5. pictures3
    6. pictures4
    4. path
    5. id_article
    Dois je me servir de right join pour ajouter les photos dans la requête ?
    Pour l'instant cela donne ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT db_movie.id_article, db_movie.years, db_movie.post_desc, db_movie.title, db_movie.word, db_pvehicles.id_pictures, db_pvehicles.path, db_pvehicles.pictures, db_pvehicles.pictures2, db_pvehicles.pictures3, db_pvehicles.pictures4 FROM db_movie INNER JOIN db_pvehicles ON db_movie.id_article = db_pvehicles.id_pictures)

  17. #17
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    Citation Envoyé par gtraxx Voir le message

    Dois je me servir de right join pour ajouter les photos dans la requête ?
    ça dépend de l'ordre dans le lequel tu écris tes tables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    articles LEFT JOIN photos
    est l'équivalent de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    photos RIGHT JOIN articles

  18. #18
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Ben pour l'instant ce n'est pas très optimiser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT db_movie.id_article, db_movie.years, db_movie.post_desc, db_movie.title, db_movie.word, db_pvehicles.id_pictures, db_pvehicles.path, db_pvehicles.pictures, db_pvehicles.pictures2, db_pvehicles.pictures3, db_pvehicles.pictures4
    FROM db_movie
    INNER JOIN db_pvehicles ON ( db_movie.id_article = db_pvehicles.id_pictures )

  19. #19
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 292
    Par défaut
    ???

  20. #20
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Désolé je n'ai pas posté les changements:
    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
    16
    17
    18
    19
    20
    --
    -- Structure de la table `db_movie`
    --
     
    CREATE TABLE IF NOT EXISTS `db_movie` (
      `id_article` int(5) NOT NULL auto_increment,
      `years` year(4) NOT NULL,
      `post_desc` varchar(255) NOT NULL,
      `title` varchar(50) NOT NULL,
      `word` text NOT NULL,
      PRIMARY KEY  (`id_article`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
     
    --
    -- Contenu de la table `db_movie`
    --
     
    INSERT INTO `db_movie` (`id_article`, `years`, `post_desc`, `title`, `word`) VALUES
    (1, 2004, 'Lorem ipsum dolor sit amet.', 'Lorem Ipsum', 'Nam diam turpis, blandit id, vulputate nec, laoreet quis, est. Sed gravida. Suspendisse potenti. Nunc vehicula urna vitae dolor. Cras iaculis imperdiet risus. Curabitur euismod molestie ante. Pellentesque egestas mi quis magna. Sed pretium. Nam in lacus.'),
    (2, 2005, 'Proin condimentum quam', 'nouveau teste', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut id mauris. Aliquam erat volutpat. Nunc rhoncus vestibulum risus. Donec leo risus, eleifend ut, euismod in, ultrices id, turpis. Nulla purus risus, posuere nec, lobortis ac, sagittis sed, turpis.');
    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
    16
    17
    18
    19
    20
    21
    22
    -
    -- Structure de la table `db_pvehicles`
    --
     
    CREATE TABLE IF NOT EXISTS `db_pvehicles` (
      `id_pictures` int(5) NOT NULL auto_increment,
      `years` year(4) NOT NULL,
      `path` varchar(20) NOT NULL,
      `pictures` varchar(20) NOT NULL,
      `pictures2` varchar(20) NOT NULL,
      `pictures3` varchar(20) NOT NULL,
      `pictures4` varchar(20) NOT NULL,
      PRIMARY KEY  (`id_pictures`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
     
    --
    -- Contenu de la table `db_pvehicles`
    --
     
    INSERT INTO `db_pvehicles` (`id_pictures`, `years`, `path`, `pictures`, `pictures2`, `pictures3`, `pictures4`) VALUES
    (1, 2004, 'tournage1', 'photos01.jpg', 'photos2.jpg', 'photos3.jpg', 'photos4.jpg'),
    (2, 2005, 'tournage2', 'photo2.jpg', '', '', '');
    Ou je fais mieux, ou alors ma situation s'aggrave

Discussions similaires

  1. [AJAX] Erreur de raisonnement : double select plus graph en AJAX
    Par MortyDeath dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/11/2007, 16h23
  2. SELECT DISTINCT et double tri
    Par jak0 dans le forum Requêtes
    Réponses: 4
    Dernier message: 16/06/2006, 13h36
  3. Un double Select doublé d un "for each" qui coince
    Par Sparal dans le forum Access
    Réponses: 4
    Dernier message: 09/02/2006, 15h00
  4. [MySQL] Select double et insertion dans fichier
    Par Anakior dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/01/2006, 16h11
  5. double selection impossible
    Par Ghost Dog dans le forum OpenGL
    Réponses: 3
    Dernier message: 12/05/2005, 20h42

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