小人不才,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這裡不能有重複的欄位
未結貼嗎?還有問題?