Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment joindre sur la même table, deux fois, dans mysql ?

vous utiliseriez une autre jointure, quelque chose comme ça :

SELECT toD.dom_url AS ToURL, 
    fromD.dom_url AS FromUrl, 
    rvw.*

FROM reviews AS rvw

LEFT JOIN domain AS toD 
    ON toD.Dom_ID = rvw.rev_dom_for

LEFT JOIN domain AS fromD 
    ON fromD.Dom_ID = rvw.rev_dom_from

MODIFIER :

Tout ce que vous faites est de rejoindre la table plusieurs fois. Regardez la requête dans le post :elle sélectionne les valeurs des tables Reviews (alias rvw), cette table vous fournit 2 références à la table Domain (un FOR et un FROM).

À ce stade, il est simple de joindre à gauche la table Domain à la table Reviews. Une fois (alias toD) pour le FOR, et une deuxième fois (alias fromD) pour FROM.

Ensuite, dans la liste SELECT, vous sélectionnerez les champs DOM_URL des deux LEFT JOINS de la table DOMAIN, en les référençant par l'alias de table pour chaque joint en référence à la table Domains, et en les aliasant comme ToURL et FromUrl.

Pour plus d'informations sur les alias dans SQL, lisez ici .