Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在MySQL中合并两个表并创建一个新表_Php_Mysql_Phpmyadmin - Fatal编程技术网

Php 在MySQL中合并两个表并创建一个新表

Php 在MySQL中合并两个表并创建一个新表,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我在MySQL中有两个表: 表1 age code 20 ABC 15 DEF 32 ABC 45 DEF 表2 geo code POLYGON ABC POLYGON DEF POLYGON GHI 我计算了表1中具有相同“代码”的双寄存器 选择code,将(code)计数为cnt 来自表1 分组依据code 具有(cnt>0) 结果: code cnt ABC 2 DEF 2 我想将此结果与表2合并,并创建第三个表: 表3 geo

我在MySQL中有两个表:

表1

age code
20  ABC
15  DEF
32  ABC
45  DEF
表2

geo       code
POLYGON   ABC
POLYGON   DEF
POLYGON   GHI
  • 我计算了表1中具有相同“代码”的双寄存器

    选择
    code
    ,将(
    code
    )计数为cnt 来自表1 分组依据
    code
    具有(cnt>0)

  • 结果:

    code  cnt
    ABC    2
    DEF    2
    
    我想将此结果与表2合并,并创建第三个表:

    表3

    geo      code   cnt
    POLYGON  ABC     2
    POLYGON  DEF     2
    POLYGON  GHI     0
    

    这是可能的吗?

    您可以使用
    创建表作为
    语法,从查询的输出创建一个表

    所以我们现在真正要做的就是创建一个查询,返回您想要的结果。这里有一个这样的问题:

    select geo, t2.code, ifnull(cnt, 0) cnt
      from table2 t2
        left join
          (select code, count(*) cnt
             from table1
             group by code
           ) q1
         on t2.code = q1.code
    

    然后我们所要做的就是将它插入我们的
    createtable
    语句中

    create table new_table as
    select geo, t2.code, ifnull(cnt, 0) cnt
      from table2 t2
        left join
          (select code, count(*) cnt
             from table1
             group by code
           ) q1
         on t2.code = q1.code;
    
    下面是一个获得完全相同结果的奖励查询:

    select t2.geo, t2.code, count(t1.code) cnt
      from table2 t2
        left join table1 t1
          on t1.code = t2.code
      group by t2.code;
    

    尝试插入SELECT()?在此之前,您必须创建“否”,否则将无法创建。现在,如果我想确定“new_table”表是否存在,是否创建它。它将是:如果存在,则删除表
    新表