单个SQL来聚合来自三个表的数据

时间:2014-12-09 20:14:50

标签: mysql sql join

我有以下三个表:

“用户”表:

  • user_id
  • first_name
  • last_name
  • 用户名
  • 密码

“users_addresses”表:

  • address_id
  • user_id
  • street
  • country_id
  • 电子邮件

“国家/地区”表格

  • country_id
  • 名称

用户可以拥有多个地址,但每个用户至少有一个地址。

我想要做的是编写一个查询以获取所有用户的最新地址。

我尝试了这个查询,但显然,如果用户有多个地址,它就不会返回最新地址:

SELECT u.first_name
     , u.last_name
     , u.username
     , u.password
     , a.user_id
     , a.street
     , a.email
     , c.name 
  FROM users u 
  LEFT 
  JOIN user_addresses ua 
    ON ua.user_id = u.user_id 
  LEFT 
  JOIN countries c 
    ON ua.country_id = c.country_id 
 GROUP 
    BY a.user_id 
 ORDER 
    BY u.last_name ASC

感谢任何帮助。

谢谢!

0 个答案:

没有答案