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

MySQL si unisce più alla stessa tabella

Sulla base del tuo commento che page1, page2.. sono colonne di chiavi esterne, penso che sia semplice.

Qualcosa come:

SELECT 
    s.unique_id, s.counter, s.sequence_length, s.yearmonth, 
    s.mod_date_stamp,
    pg1.page_url as page1, pg2.page_url as page2, 
    pg3.page_url as page3, pg4.page_url as page4, 
    pg5.page_url as page5
FROM 
    session s
LEFT JOIN 
    sessionpage pg1 ON pg1.unique_id = s.page1 
LEFT JOIN 
    sessionpage pg2 ON pg2.unique_id = s.page2
LEFT JOIN 
    sessionpage pg3 ON pg3.unique_id = s.page3
LEFT JOIN 
    sessionpage pg4 ON pg4.unique_id = s.page4
LEFT JOIN 
    sessionpage pg5 ON pg5.unique_id = s.page5

Penso che questo funzionerà.

Ma quando non c'è alcun valore sulla colonna (sulla sessione della tabella), dovresti usare null invece di 0 (zero).

Un altro suggerimento, sull'istruzione SELECT, se non vuoi valori NULL puoi usare:

COALESCE(pg5.page_url, ' ') as page5