有表A
ID a_name a_age
1 张三 18
2 李四 33
…… 表B
b_id ID station ……
1 1 广州 ……
2 1 上海 ……
3 1 北京 ……
4 2 南京 ……
5 2 天津 ……
我需要取得如下的数据
a.id a_name station
1 张三 北京
就是取得A表中的人目前正在哪个城市,即表B中b_id最大的值
(表B中的字段比较多,而且基本全部需要显示出来,因此用GROUP BY好像不行,用DISTINCT也不行)请大家帮帮忙
ID a_name a_age
1 张三 18
2 李四 33
…… 表B
b_id ID station ……
1 1 广州 ……
2 1 上海 ……
3 1 北京 ……
4 2 南京 ……
5 2 天津 ……
我需要取得如下的数据
a.id a_name station
1 张三 北京
就是取得A表中的人目前正在哪个城市,即表B中b_id最大的值
(表B中的字段比较多,而且基本全部需要显示出来,因此用GROUP BY好像不行,用DISTINCT也不行)请大家帮帮忙
--试一下:
select a.id, a.a_name, b.station
from tableA a,
tableB b,
(select id, rownum rn over(partition by id order by id desc)
from tableB) c
where a.id = b.id
and a.id = c.id
and c.rn = 1;
SELECT A1.ID, A1.A_NAME, B1.STATION
FROM A A1, B B1
WHERE A1.ID = B1.ID
AND NOT EXISTS (SELECT 1
FROM B B2
WHERE A1.ID = B2.ID
AND B1.B_ID < B2.B_ID)
AND A1.A_NAME = 'ZHANGSHA';
ID A_NAME STATION
---------- -------- --------
1 ZHANGSHA BEIJING