我正在使用mysql,我有表A有帐户信息,B表有人口统计信息,如出生日期,地址和保险单信息(小学,中学)。表B的保险费用已更新,所以我想要来自表B.Table B的最新数据没有任何日期。那么我如何从B获得最近的记录,以后再加入A.
select
A.num,
A.openingamount,
A.action,
A.current_status,
B.dob,
B.primary_policy,
B.secondary_policy
from A
left outer join B
on (B.uniqueid = A.ponum)
where A.num ='123'
答案 0 :(得分:0)
如果您没有日期列,则需要增加列:
select
A.num,
A.openingamount,
A.action,
A.current_status,
B.dob,
B.primary_policy,
B.secondary_policy
from A
left outer join B
on (B.uniqueid = A.ponum)
where A.num ='123'
order by B.increment_id desc
答案 1 :(得分:0)
您还可能想要添加自动更新的TIMESTAMP字段 -
ALTER TABLE B
ADD COLUMN ts
TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
Automatic Initialization and Updating for TIMESTAMP
然后使用此字段查找最新记录。
答案 2 :(得分:0)
juergen d在上面的eir评论中是正确的,声明你需要表B中的一些有序列来确定最新的。如果B.uniqueid
是自动递增列,那么您可以使用它;如果不是那么你需要添加一个新的列来订购B.
然后,您可以使用双连接获取数据到B,其中第二个连接用于查找大于B
的{{1}}行(即查找没什么)。
uniqueid