Partage
  • Partager sur Facebook
  • Partager sur Twitter

[MySQL] Problème requête

Or ou XOR ??

    2 avril 2011 à 18:26:18

    Bonjour,

    J'ai un problème sur une requête.
    Je voudrai retourner la ligne de la langue sélectionner si elle est existe sinon la langue par défaut.

    Voici un aperçu des tables qui serves.

    Table page_rubrique
    id_pages srub
    4 0
    5 4


    Table page_contenue
    id_contenue id_page id_lang nom_pages
    1 4 1 blabla fr
    2 4 2 blabla Corse
    3 5 1 coucou FR


    Table langs
    id name dafalt
    1 Fançais 1
    2 Corse 0


    Voici la requete que j'ai pour le moment mais il me sort pas se que je veut :
    SELECT * 
    FROM pages_rubrique AS R 
    LEFT JOIN pages_contenue AS C ON C.id_page = R.id_pages 
    LEFT JOIN langs AS L ON L.id = C.id_lang 
    WHERE (id_lang=1 OR L.default='1')
    


    Est ce que je peut le faire direct en MySQL ou je doit faire la selection de langs en PHP ?

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      3 avril 2011 à 23:09:37

      Y a moyen de le faire avec 1 requête, genre :

      SELECT * 
      FROM pages_rubriques AS R 
      LEFT JOIN pages_contenus AS C ON (R.id_page = C.id_page AND C.id_lang = $id_lang)
      LEFT JOIN pages_contenus AS D ON (C.id_page IS NULL AND R.id_page = C.id_page AND D.id_lang = $id_lang_default)
      


      Je suppose que la langue par défaut est en cache dans l'application (sinon il faut ajouter un subselect ou une jointure supplémentaire).
      • Partager sur Facebook
      • Partager sur Twitter
        4 avril 2011 à 15:30:51

        Merci Lord Casque Noir

        J'ai un souci je ne c'est pas faire de "subselect" et la lang par défaut est dans la table pages_contenue

        Encore merci j'ai déjà beaucoup avancer ;)

        AdJaXiO
        • Partager sur Facebook
        • Partager sur Twitter

        [MySQL] Problème requête

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown