Php 在MySQL中合并两个表并创建一个新表
我在MySQL中有两个表: 表1Php 在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
age code
20 ABC
15 DEF
32 ABC
45 DEF
表2
geo code
POLYGON ABC
POLYGON DEF
POLYGON GHI
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”表是否存在,是否创建它。它将是:如果存在,则删除表
新表;