代码之家  ›  专栏  ›  技术社区  ›  anandyn02

按名称连接两个表并分组

  •  0
  • anandyn02  · 技术社区  · 1 年前

    我正在尝试编写一个SQL查询,它收集用户信息和用户照片。出于某种原因,我的查询返回了相同的用户信息,但照片URL不同。

    select * from User as a JOIN UserPhoto as up ON a.ID=up.UserId
    

    表用户

    FirstName | LastName |   DOB    | ID
    ABC          YZV         123     1234567 
    BCD          XYZ         123     1234568 
    XYZ          MCD         124     1234569 
    MNO          XYZ         125     1234570
    

    表用户照片

    ID |   UserId   | PhotoUrl
    01    1234567      https://imageUrl1
    02    1234567      https://imageUrl2
    03    1234568      https://imageUrla1
    04    1234568      https://imageUrlb1
    

    预期产量:

    {
      fName: "ABC",
      lName: "YZV", 
      dob: 123, 
      id: 1234567, 
      photos {
       https://imageUrl1,
       https://imageUrl2
      }
    }
    
    1 回复  |  直到 1 年前
        1
  •  4
  •   Lord Elrond Mureinik    1 年前

    你可以 group_concat 照片,然后加入其中:

    SELECT u.*, photos
    FROM   users u
    JOIN   (SELECT   userid, GROUP_CONCAT(photourl ORDER BY photourl ASC) AS photos
            FROM     userphoto
            GROUP BY userid) up ON u.id = up.userid