Mysql
 sql >> Database >  >> RDS >> Mysql

Come ci si unisce allo stesso tavolo, due volte, in mysql?

useresti un altro join, qualcosa del genere:

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

MODIFICA :

Tutto quello che stai facendo è unirti al tavolo più volte. Guarda la query nel post:seleziona i valori dalle tabelle Recensioni (alias rvw), quella tabella ti fornisce 2 riferimenti alla tabella Dominio (un FOR e un FROM).

A questo punto è semplice unire a sinistra la tabella Dominio alla tabella Recensioni. Una volta (alias toD) per FOR e una seconda volta (alias fromD) per FROM.

Quindi nell'elenco SELECT, selezionerai i campi DOM_URL da entrambi LEFT JOINS della tabella DOMAIN, facendo loro riferimento con l'alias della tabella per ogni join in riferimento alla tabella Domains e alias come ToURL e FromUrl.

Per ulteriori informazioni sull'alias in SQL, leggi qui .