首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用"Group by“、"max”和"join“的SQL请求?

使用"Group by“、"max”和"join“的SQL请求?
EN

Stack Overflow用户
提问于 2010-03-02 21:07:58
回答 1查看 4.5K关注 0票数 2

以下是我的数据示例:

CLIENT_ATTRIBUT:

代码语言:javascript
运行
复制
ID_CLIENT | DATE_CLIENT | ATTRIBUT
----------+-------------+---------
000000001 | 2010:03:01  | 0000010
----------+-------------+---------
000000001 | 2010:02:16  | 0000010
----------+-------------+---------
000000001 | 2010:03:04  | 0000011
----------+-------------+---------
000000002 | 2010:03:01  | 0001000
----------+-------------+---------

客户端:

代码语言:javascript
运行
复制
ID_CLIENT | NOM_MARITAL |
----------+-------------+
000000001 | PANTROMANI  | 
----------+-------------+
000000002 | ELLOUQUIER  |
----------+-------------+

对于表"CLIENT_ATTRIBUT“中的每个ID_CLIENT,我想获取:

ID_CLIENT,max(DATE_CLIENT)及其对应的"ATTRIBUT“和"NOM_MARITAL”

因此,在上面的示例中:

代码语言:javascript
运行
复制
ID_CLIENT | DATE_CLIENT | ATTRIBUT | NOM_MARITAL |
----------+-------------+----------+-------------+
000000001 | 2010:03:04  | 0000011  | PANTROMANI  |
----------+-------------+----------+-------------+
000000002 | 2010:03:01  | 0001000  | ELLOUQUIER  |

(我正在使用Mysql,但我猜它与任何数据库系统都不应该有太大不同)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-02 21:16:33

您应该能够使用子查询,如下所示:

代码语言:javascript
运行
复制
SELECT 
    client.id_client,
    sub_query.date_client,
    client_attribut.attribut,
    client.nom_marital
FROM
    client
INNER JOIN
    (SELECT 
         client_attribut.id_client, 
         MAX(client_attribut.date_client) as date_client
     FROM 
         client_attribut
     GROUP BY 
         client_attribut.id_client)
     AS sub_query ON (sub_query.id_client = client.id_client)
INNER JOIN
    client_attribut ON (client_attribut.id_client = sub_query.id_client AND
                        client_attribut.date_client = sub_query.date_client);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2363237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档