欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

一下大家,打了三个小时了

程序员文章站 2022-05-25 20:42:03
...
小人不才,mysql学得一塌糊涂..........................................急求大家帮助..........................

我的目的是将查询后的结果作为一张临时表存放起来,我的sql语句如下:


select a.value,a.id,b.value from a,b where a.value=b.value as k;


居然报错...........................................请问正确的语法是什么??

两张表都是存在的


相应的字段也是存在的


我觉得应该是语法上面有错误,请问正确的语法是什么??

十万火急,万分感谢!!!!!!!!!!!!!!!!!!!!!


回复讨论(解决方案)

报错就有错误信息
而错误信息中已经给出了出现问题的位置

as k似乎有问题,去掉试试。

select * from (select a.value,a.id,b.value from a,b where a.value=b.value ) k;

select * from (select a.value,a.id,b.value from a,b where a.value=b.value ) k;



还是不行啊…………照着你的语句复制上去,还是出现错误...

应该只是一个语句方面的问题,我只是想将查询到的结果作为一张临时表存放起来而已的,很简单的,麻烦用心写写

报错就有错误信息
而错误信息中已经给出了出现问题的位置



版主大人救命啊,我我只是想将查询到的结果作为一张临时表k存放起来而已的,很简单的

你的语句是什么,贴出来看看。

create temporary table k select a.value,a.id,b.value from a,b where a.value=b.value

不过临时表只能生存在当前连接中




报错就有错误信息
而错误信息中已经给出了出现问题的位置



版主大人救命啊,我我只是想将查询到的结果作为一张临时表k存放起来而已的,很简单的

create table temp_table as select * from table;

创建临时表是用create temporary table tablename,然后把数据插入。
在phpmyadmin运行可以看到结果

create temporary table k(  `a` varchar(20) NOT NULL,  `aid` int(11) NOT NULL,  `b` varchar(20) NOT NULL);insert into k(a,aid,b) select a.value,a.id,b.value from a,b where a.value=b.value;select * from k;

版主写的那句需要改一改。

create temporary table k select a.value as aval,a.id as aid,b.value as bval from a,b where a.value=b.value;select * from k;


否则会有两个value,导致出错。#1060 - Duplicate column name 'value'

with k as (select a.value,a.id,b.value as value1 from a,b where a.value=b.value)select * from k
或者是
select * from (select a.value,a.id,b.value as value1 from a,b where a.value=b.value) k
需要注意的是select a.value,a.id,b.value这里不能有重复的字段

未结贴吗?还有问题?