Проблема в создании таблицы

создать таблицу mainTable как select curr_Table.empID как empID, (currTable.ToTalDays-oldTable.ToTalDays) как DiffDays из левого внешнего соединения currTable oldTable для currTable.empID = oldTable.empID

Это запрос, который я использую, чтобы найти дни, отработанные сотрудником.

Проблема возникает, когда появляется «Новый Джоини». «oldTable.ToTalDays» не будет иметь никакого значения, так как не найдена запись для «New Joinee» в oldTable. Итак, для этой записи результаты DiffDays (Integer-null) равны нулю вместо текущих общих дней.

Любой способ решить эту проблему?

13.10.2009 06:53:51
Никогда не имеет значения, так как я заинтересован в изучении и выполнении домашних заданий в течение всей моей жизни :)
Gopi 13.10.2009 07:29:01
2 ОТВЕТА
РЕШЕНИЕ
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
0
13.10.2009 07:23:35

Не совсем уверен в этом, но я не думаю, что MySQL позволяет

CREATE TABLE AS SELECT ...

такие вещи. Дважды проверьте руководство по этому . Видел такие запросы на postgres, но не помню таких на mysql ...

РЕДАКТИРОВАТЬ:

Выполнил двойную проверку тоже и должен признать, что CREATE TABLE AS SELECT ... работает на деле. Неважно, выпью кофе ...

1
13.10.2009 07:11:18
я нашел это "CREATE TABLE new_tbl SELECT * FROM orig_tbl" в приведенной выше ссылке, и все же я нашел "CREATE TABLE AS SELECT ..." работает отлично!
Gopi 13.10.2009 07:09:51