Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mehrere MySQL-Joins zu derselben Tabelle

Basierend auf Ihrem Kommentar, dass Seite1, Seite2 ... Fremdschlüsselspalten sind, denke ich, dass es einfach ist.

Etwas wie:

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

Ich denke, das wird funktionieren.

Aber wenn es keinen Wert in der Spalte gibt (in der Tabellensitzung), sollten Sie null anstelle von 0 (Null) verwenden.

Ein weiterer Tipp zur SELECT-Anweisung, wenn Sie keine NULL-Werte wollen, können Sie Folgendes verwenden:

COALESCE(pg5.page_url, ' ') as page5