CREATE TABLE ... SELECT组合两个MySQL表和NULL值

时间:2012-11-28 22:20:39

标签: mysql select null create-table

我正在使用它来连接两个表(这里省略了一些字段)。原始表中的所有字段都定义为VARCHAR,NOT NULL,默认为''。

  CREATE TABLE newtable
  SELECT
     table1.field1,
     table1.field2,
     ...
     table2.field1,
     table2.field2,
     ...
 FROM
    table1
 LEFT JOIN table2 ON table1.id = table2.id

连接本身正在工作,但是,表1有一些不在表2中的行。当我需要它们为空字符串时,表2中的字段被添加为NULL。创建表时有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

IFNULL(table1.field1,'') AS table1_field1,

IFNULL如果它不为null则保留该值,否则将其替换为第二个参数,在您的情况下为空字符串

答案 1 :(得分:1)

如果你想让table2中的列''..输出一个nvl ...这在oracle中有用

CREATE TABLE newtable as 
  SELECT
     table1.field1,
     table1.field2,
     ...
     nvl(table2.field1,''),
     nvl(table2.field2,''),
     ...
 FROM
    table1
 LEFT JOIN table2 ON table1.id = table2.id