Prevent duplicate values in LEFT JOIN

后端 未结 5 1238
礼貌的吻别
礼貌的吻别 2020-12-05 07:55

I faced a situation where I got duplicate values from LEFT JOIN. I think this might be a desired behavior but unlike from what I want.

I have three tabl

5条回答
  •  旧时难觅i
    2020-12-05 08:14

    Use this type of query: SQL Server
    (You can change id of ORDER BY id to each column that you want it)

    SELECT 
        p.id, 
        p.person_name, 
        d.department_name, 
        c.phone_number
    FROM
        person p
        LEFT JOIN 
        (SELECT *, ROW_NUMBER() OVER (PARTITION BY person_id ORDER BY id) AS seq
         FROM department) d 
        ON d.person_id = p.id And d.seq = 1
        LEFT JOIN 
        ( SELECT *, ROW_NUMBER() OVER (PARTITION BY person_id ORDER BY id) AS seq
         FROM contact) c 
        ON c.person_id = p.id And c.seq = 1;
    

提交回复
热议问题