sql >> Database >  >> RDS >> Mysql

MySQL meerdere joins naar dezelfde tabel

Op basis van je opmerking dat pagina1, pagina2.. kolommen met vreemde sleutels zijn, denk ik dat het eenvoudig is.

Iets als:

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

Ik denk dat dit zal werken.

Maar als er geen waarde op de kolom staat (op tafelsessie), moet u null gebruiken in plaats van 0 (nul).

Nog een tip, over de SELECT-instructie, als u geen NULL-waarden wilt die u kunt gebruiken:

COALESCE(pg5.page_url, ' ') as page5



  1. JPA-modelklasse voor veld TIMESTAMP ZONDER TIJDZONE DEFAULT CURRENT_TIMESTAMP in Postgres?

  2. Hoe SEC_TO_TIME() werkt in MariaDB

  3. Hoe voorkom je het gebruik van cijfers in een VARCHAR-kolom met mysql?

  4. invoegen indien niet bestaat anders selecteer gewoon in mysql