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

MySQL multiple joins til samme tabel

Baseret på din kommentar om, at side1, side2.. er fremmednøglekolonner, synes jeg det er enkelt.

Noget som:

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

Jeg tror, ​​det vil virke.

Men når der ikke er nogen værdi på kolonne (på tabelsession), skal du bruge null i stedet for 0 (nul).

Et andet tip, om SELECT-sætningen, hvis du ikke vil have NULL-værdier, kan du bruge:

COALESCE(pg5.page_url, ' ') as page5



  1. Langsomt valg af særskilt forespørgsel på postgres

  2. percentil med COUNT(DISTINCT) med korreleret WHERE fungerer kun med en visning (eller uden DISTINCT)

  3. Skift sidetitel baseret på element i Oracle APEX 4.0

  4. PostgreSQL - forespørgsel fra bash script som databasebruger 'postgres'