关于根据另一个表更新一个表的SQL

时间:2013-10-30 19:45:59

标签: mysql sql join

我有一个表A,其中包含以下列/数据

SECURITY PURCHASEDATE    NAICRating   NAICDate 
 XX        10/12/2013
 YY        10/14/2013

和表B如下

SECURITY  NAICRating   NAICDate
  XX        AA         10/12/2013
  XX        AAA        10/13/2013
  XX        AA         10/14/2013
  YY        AA         10/15/2013
  YY        B          10/16/2013

我现在希望表A在表A中的PURCHASEDATE之后或之后从B获得最早的NAIC日期的NAICRating

表A应如下所示

SECURITY PURCHASEDATE    NAICRating   NAICDate 
 XX        10/12/2013      AA          10/12/2013
 YY        10/14/2013      AA          10/15/2013

使用MySQL实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

内连接仅在两个表中都存在时显示记录。

select a.security, 
       IF(a.purchasedate < b.naicrating, a.purchasedate, b.naicrating), 
       b.naicrating, 
       IF(a.purchasedate < b.naicdate, a.purchasedate, b.naicdate)
from a inner join b on a.security = b.security
order by naicdate;

这有助于IF语句http://www.mysqltutorial.org/mysql-if-function.aspx