MySQL syntaxe de Jointure pour l'un de relation
J'ai une situation où j'ai un tableau des titres (t1) et une autre table avec de multiples liens qui font référence à ces titres (t2) dans un "un à plusieurs" de la relation.
Ce que je veux, c'est la liste complète des titres en revint avec un drapeau qui indique si il y a un lien avec elle.
Jointure gauche et du Groupe de Par:
SELECT
t1.id
, t1.title
, t2.link_id AS refId
FROM
t1
LEFT JOIN t2
ON (t1.id = t2.title_id)
GROUP BY t1.id;
C'est fermer comme il me donne le premier link_id ou NULL dans le refId colonne.
Maintenant, comment puis-je limiter les résultats si j'ai un spécifique link_id plutôt que de la laisser t2 courir à travers l'ensemble du jeu de données?
Si j'ai ajouter une clause where, par exemple:
WHERE t2.link_id = 123
Je ne reçois que quelques dossiers où la link_id les matchs, mais j'ai encore besoin de l'ensemble des titres retourné avec la valeur NULL dans la refId colonne à moins que link_id = 123.
Espère que quelqu'un peut aider
OriginalL'auteur Das123 | 2009-08-02
Vous devez vous connecter pour publier un commentaire.
Au lieu de dans la clause where, placez vos critères dans la GAUCHE de la clause de JOINTURE:
OriginalL'auteur blt04
Mettre dans la condition de jointure pour la seconde table
ON t1.id = t2.title_id
? Ou il va automatiquement prendre le pk lors de la spécification de la table?OriginalL'auteur cletus