创建表中的问题

时间:2009-10-13 06:53:52

标签: mysql create-table

创建表mainTable作为选择curr_Table.empID作为empID,     (currTable.ToTalDays-oldTable.ToTalDays)作为DiffDays     来自currTable左外连接oldTable     on currTable.empID = oldTable.empID

这是我用来查找员工工作日期的查询。

当有“New Joinee”时,问题就会出现。 “oldTable.ToTalDays”将没有任何价值,因为oldTable中的“New Joinee”不会找到任何记录。因此,对于此记录,DiffDays(整数空)结果为零而不是当前总天数。

有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

不完全确定这个,但我不认为mysql允许

CREATE TABLE AS SELECT ...

有点事。 Doublecheck the manual on that one。在postgres上看过这样的问题,但是在mysql上不记得这样的问题...

编辑:

也执行了双重检查,并且必须承认CREATE TABLE AS SELECT ...在契约中有效。没关系,要去喝点咖啡......

答案 1 :(得分:0)

create table mainTable as
select curr_Table.empID as empID,
       (currTable.ToTalDays - ifnull(oldTable.ToTalDays, 0)) as DiffDays 
  from currTable
         left outer join
       oldTable  on currTable.empID = oldTable.empID