SQL上的SQL Join查询帮助

时间:2015-02-16 15:34:28

标签: mysql sql

这是我的基本查询

 SELECT * from ACTIONS where STARTDATE < '2015-05-01'   and EXPORTDATE is null

我需要加入表格合约,并且只包括SERIAL在两个表格中相同的记录和ENDDATE(在合约中)&lt; &#39; 2015年3月1日&#39;

一旦我查看了数据,我就需要在ACTIONS上设置更新查询,将STARTDATE设置为相同记录的新日期。

2 个答案:

答案 0 :(得分:4)

select语句的连接:

SELECT * from ACTIONS 
JOIN Contracts ON Actions.Serial = Contracts.Serial
WHERE Actions.STARTDATE < '2015-05-01' 
  AND Actions.EXPORTDATE is null
  AND Contracts.EndDate < '2015-03-01'

更新(使用带连接语法的MySQL更新):

UPDATE Actions
JOIN Contracts ON Actions.Serial = Contracts.Serial
SET Actions.StartDate = 'NewDate'
WHERE Actions.STARTDATE < '2015-05-01' 
  AND Actions.EXPORTDATE is null
  AND Contracts.EndDate < '2015-03-01'

如果您想缩短查询,可以使用Contracts AS C等表格的别名,然后使用如下别名来引用表:C.EndDate < '2015-03-01'

答案 1 :(得分:2)

或使用其他符号。

SELECT * from ACTIONS act
INNER JOIN CONTRACTS con on act.serial = con.serial 
where con STARTDATE < '2015-05-01'   
and act.EXPORTDATE is null