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

WBOY
发布: 2016-06-23 13:47:44
原创
1039 人浏览过

小人不才,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这里不能有重复的字段

未结贴吗?还有问题?

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板