[MYSQL] Une sorte de "OR JOIN" ?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par NicolasSW, 5 Juillet 2013.

  1. NicolasSW
    NicolasSW Nouveau WRInaute
    Inscrit:
    13 Mai 2013
    Messages:
    28
    J'aime reçus:
    0
    Bonjour,

    J'ai enfin réussi à faire la requête que je voulais avec la nouvelle syntaxe. Seulement, j'ai besoin d'exécuter le deuxième JOIN si le premier a échoué. Plus simplement rajouter OR devant.

    Code:
    SELECT posts.* FROM posts
    JOIN users_follows
    ON users_follows.follower_id = '.get_session().' AND users_follows.followed_id = posts.user_id AND users_follows.active = 1
    JOIN tags_follows
    ON tags_follows.follower_id = '.get_session().' AND posts.tags LIKE tags_follows.tag_name AND tags_follows.active = 1
    WHERE posts.del = 0
    Malheureusement, après mes recherches et essais, je n'ai rien trouvé. J'ai essayé avec LEFT devant mais rien n'y fait.

    Pouvez-vous m'aider ?

    Merci
     
  2. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 593
    J'aime reçus:
    0
    1. Transformer chacun des JOINs en LEFT JOIN
    2. ajouter une condition dans le where qui vérifier que l'un ou l'autre des LEFT JOINs a fonctionné:
    AND (users_follows.follower_id IS NOT NULL OR tags_follows.follower_id IS NOT NULL)
    par exemple.

    Le fait d'utiliser les LEFT JOINS fait que le SELECT renverra au moins une ligne pour chaque ligne de posts, complétée par les colonnes correspondantes de users_follows et tags_follows s'il y en a (elles seront NULL sinon). Ensuite le filtre dans le WHERE permet de s'assurer qu'au moins un des deux LEFT JOINs a bien trouvé un résultat.

    Jacques.
     
Chargement...
Similar Threads - [MYSQL] sorte JOIN Forum Date
[résolu][mysql] faire un "NOT LIKE" sur une chaîne contenant des / Développement d'un site Web ou d'une appli mobile 25 Octobre 2014
[MySQL] Liste (select) avec des lignes au hasard Développement d'un site Web ou d'une appli mobile 23 Octobre 2014
[MySQL] Requête SELECT et INSERT entre 3 tables liées+Aide Développement d'un site Web ou d'une appli mobile 30 Avril 2014
[MySQL] Nombre d'enregistrements sur des horaires précis Développement d'un site Web ou d'une appli mobile 19 Juillet 2013
[MYSQL] Comment remplacer caractères dans tous les champs de toutes les tables d'une base? Développement d'un site Web ou d'une appli mobile 11 Juillet 2013
[MySQL] sélectionner la dernière note pour chaque élève en une seule requète ? Développement d'un site Web ou d'une appli mobile 12 Avril 2012
[Mysql] Requête PDO avec variable php Développement d'un site Web ou d'une appli mobile 16 Février 2012
[Mysql] Requête PDO aléatoire Développement d'un site Web ou d'une appli mobile 7 Février 2012
[MYSQL] Tri par date Développement d'un site Web ou d'une appli mobile 7 Septembre 2011
[MySQL] rechercher une valeur dans un champ sérialisé Développement d'un site Web ou d'une appli mobile 10 Août 2011
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice