有两个表结构如下:表a
id name address ....
001 apple1 test1
002 bill2 test2表b
id payment ...
001 20
001 30
002 40
002 50我现在的sql是这样的:select a.id, a.name, a.address, b.payment from a, b where a.id = b.id;这样找出来的记录同一个id有多条记录,我现在想一个id只显示一条记录,同一个id有多个payment的话只取第一个,也就是如下结果id name address payment
001 apple1 test1 20
002 bill2 test2 40请问这样的sql该怎样写?谢谢.
id name address ....
001 apple1 test1
002 bill2 test2表b
id payment ...
001 20
001 30
002 40
002 50我现在的sql是这样的:select a.id, a.name, a.address, b.payment from a, b where a.id = b.id;这样找出来的记录同一个id有多条记录,我现在想一个id只显示一条记录,同一个id有多个payment的话只取第一个,也就是如下结果id name address payment
001 apple1 test1 20
002 bill2 test2 40请问这样的sql该怎样写?谢谢.
from a, (select distinct id, first_value(payment) over(partition by id) pay from b) c where a.id = c.id;
from a, b
where a.id = b.id;