首页 > 解决方案 > 更新 oracle DB 中的选择查询

问题描述

我在这样的数据库中有 5 个表(下面的脚本)::

数据库脚本


CREATE TABLE EQUIPE (
    code_equipe char(3) primary key,
    nom varchar(30),
    directeur varchar(30));
CREATE TABLE PAYS (
    code_pays varchar(3) primary key,
    nom varchar(20));
CREATE TABLE COUREUR (
    num_dossart number(3) primary key,
    code_equipe char(3),
    nom varchar(30),
    code_pays varchar(3));
CREATE TABLE ETAPE (
    num_etape number(1) primary key,
    date_etape date,
    kms number(3),
    ville_depart varchar(20),
    ville_arrivee varchar(20));
CREATE TABLE TEMPS (
    num_dossart number(3),
    num_etape number(1),
    temps_realise number(6),
    primary key(num_dossart,num_etape));
ALTER table COUREUR add CONSTRAINT FK_avoir_code_equipe FOREIGN KEY (code_equipe) REFERENCES EQUIPE(code_equipe);
ALTER table COUREUR add CONSTRAINT FK_avoir_code_pays FOREIGN KEY (code_pays) REFERENCES PAYS(code_pays);
ALTER table TEMPS add CONSTRAINT FK_avoir_num_dossart FOREIGN KEY (num_dossart) REFERENCES COUREUR(num_dossart);
ALTER table TEMPS add CONSTRAINT FK_avoir_num_etape FOREIGN KEY (num_etape) REFERENCES ETAPE(num_etape);

和我的查询

select num_etape,max(temps_realise) from TEMPS group by num_etape

给出了这个结果

我想更新它以给出这样的结果

在此处输入图像描述

这是

标签: sqloracle

解决方案


如果我没看错的话,一个简单的连接就可以完成这项工作:

select t.num_etape, 
       c.nom, 
       max(n.temps_realise)
from temps t join coureur c on c.num_dossart = t.num.dossart
group by t.num_etape, 
         c.nom;

推荐阅读