使用左连接查询单个结果

时间:2009-09-04 13:41:19

标签: sql mysql

我目前的查询类似于:

SELECT users.fname, users.lname, sales.date 
FROM users
LEFT JOIN sales ON users.id=sales.user

这给了我类似的结果:

Fname | Lname | Date

Jeff  | K     | 2/12/08
Jeff  | K     | 5/18/08
Jeff  | K     | 2/22/09
Bill  | D     | 3/12/08
Bill  | D     | 12/9/08

这是我非常期待的,因为我有多个销售链接到用户,但我希望只列出一个用户(,也许是一种方法来选择单个结果选择的销售字段)这是可能的,我将如何做到这一点?

即:

Fname | Lname | Date

Jeff  | K     | 5/18/08
Bill  | D     | 12/9/08

3 个答案:

答案 0 :(得分:4)

SELECT users.fname, users.lname, MAX(sales.date)
FROM users
LEFT JOIN sales ON users.id=sales.user
GROUP BY users.fname, users.lname

或者如果您想要销售表中的更多字段:

SELECT users.fname, users.lname, sales.date, sales.proft
FROM users
LEFT JOIN sales ON users.id=sales.user
AND sales.date = (SELECT MAX(sales.date) FROM sales WHERE user = users.id)

答案 1 :(得分:0)

SELECT users.fname, users.lname, max(sales.date) as date
FROM users
LEFT JOIN sales ON users.id=sales.user
group by users.fname, users.lname

答案 2 :(得分:0)

您必须按用户分组,并在销售日期添加一些汇总功能,以“控制”在查询结果集中输出哪些可能的日期...

说你想要最近的约会......

Select u.fname, u.lname, Max(s.date) LastSale
FROM users u 
  LEFT JOIN sales s ON u.id=s.user
Group By u.fname, u.lname