2015-06-25 105 views
2

当列确实存在时,我不断收到此错误,谁能告诉我为什么?1054错误,未知列在where子句

这是我的查询:

update testtable2 set testtable2.BE = testtable1.`1962` 
where testtable2.`year`= 1962 
     and testtable2.PERMNO = testtable1.testcolumn 

而且我得到这样的回应:

错误代码:1054未知列 'testtable1.testcolumn' 在 'where子句'

testtable1结构:

`testcolumn` varchar(255) DEFAULT NULL, 
`FIRSTYEAR` varchar(255) DEFAULT NULL, 
`LASTYEAR` varchar(255) DEFAULT NULL, 
`1926` varchar(255) DEFAULT NULL, 
`1927` varchar(255) DEFAULT NULL, 
`1928` varchar(255) DEFAULT NULL, 
`1929` varchar(255) DEFAULT NULL, 
`1930` varchar(255) DEFAULT NULL, 
`1931` varchar(255) DEFAULT NULL, 
`1932` varchar(255) DEFAULT NULL, 
`1933` varchar(255) DEFAULT NULL, 
`1934` varchar(255) DEFAULT NULL, 
`1935` varchar(255) DEFAULT NULL, 
`1936` varchar(255) DEFAULT NULL, 
`1937` varchar(255) DEFAULT NULL, 
`1938` varchar(255) DEFAULT NULL, 
`1939` varchar(255) DEFAULT NULL, 
`1940` varchar(255) DEFAULT NULL, 
`1941` varchar(255) DEFAULT NULL, 
`1942` varchar(255) DEFAULT NULL, 
`1943` varchar(255) DEFAULT NULL, 
`1944` varchar(255) DEFAULT NULL, 
`1945` varchar(255) DEFAULT NULL, 
`1946` varchar(255) DEFAULT NULL, 
`1947` varchar(255) DEFAULT NULL, 
`1948` varchar(255) DEFAULT NULL, 
`1949` varchar(255) DEFAULT NULL, 
`1950` varchar(255) DEFAULT NULL, 
`1951` varchar(255) DEFAULT NULL, 
`1952` varchar(255) DEFAULT NULL, 
`1953` varchar(255) DEFAULT NULL, 
`1954` varchar(255) DEFAULT NULL, 
`1955` varchar(255) DEFAULT NULL, 
`1956` varchar(255) DEFAULT NULL, 
`1957` varchar(255) DEFAULT NULL, 
`1958` varchar(255) DEFAULT NULL, 
`1959` varchar(255) DEFAULT NULL, 
`1960` varchar(255) DEFAULT NULL, 
`1961` varchar(255) DEFAULT NULL, 
`1962` varchar(255) DEFAULT NULL, 
`1963` varchar(255) DEFAULT NULL, 
`1964` varchar(255) DEFAULT NULL, 
`1965` varchar(255) DEFAULT NULL, 
`1966` varchar(255) DEFAULT NULL, 
`1967` varchar(255) DEFAULT NULL, 
`1968` varchar(255) DEFAULT NULL, 
`1969` varchar(255) DEFAULT NULL, 
`1970` varchar(255) DEFAULT NULL, 
`1971` varchar(255) DEFAULT NULL, 
`1972` varchar(255) DEFAULT NULL, 
`1973` varchar(255) DEFAULT NULL, 
`1974` varchar(255) DEFAULT NULL, 
`1975` varchar(255) DEFAULT NULL, 
`1976` varchar(255) DEFAULT NULL, 
`1977` varchar(255) DEFAULT NULL, 
`1978` varchar(255) DEFAULT NULL, 
`1979` varchar(255) DEFAULT NULL, 
`1980` varchar(255) DEFAULT NULL, 
`1981` varchar(255) DEFAULT NULL, 
`1982` varchar(255) DEFAULT NULL, 
`1983` varchar(255) DEFAULT NULL, 
`1984` varchar(255) DEFAULT NULL, 
`1985` varchar(255) DEFAULT NULL, 
`1986` varchar(255) DEFAULT NULL, 
`1987` varchar(255) DEFAULT NULL, 
`1988` varchar(255) DEFAULT NULL, 
`1989` varchar(255) DEFAULT NULL, 
`1990` varchar(255) DEFAULT NULL, 
`1991` varchar(255) DEFAULT NULL, 
`1992` varchar(255) DEFAULT NULL, 
`1993` varchar(255) DEFAULT NULL, 
`1994` varchar(255) DEFAULT NULL, 
`1995` varchar(255) DEFAULT NULL, 
`1996` varchar(255) DEFAULT NULL, 
`1997` varchar(255) DEFAULT NULL, 
`1998` varchar(255) DEFAULT NULL, 
`1999` varchar(255) DEFAULT NULL, 
`2000` varchar(255) DEFAULT NULL, 
`2001` varchar(255) DEFAULT NULL, 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

testtable2结构:

`PERMNO` varchar(255) DEFAULT NULL, 
`year` varchar(255) DEFAULT NULL, 
`BE`  varchar(255) DEFAULT NULL 
+2

你可以分享你的表结构testtable1和testtable2? – Arulkumar

回答

0

你忘了加入他们我想......

update testtable2 tt2 
inner join testtable1 tt1 on 
    tt1.testcolumn = tt2.PERMNO AND tt2.`year`= 1962 
set tt2.BE = tt1.`1962` 

或者更简单的方法:

update testtable2, testtable1 
set testtable2.BE = testtable1.`1962 
where testtable2.`year`= 1962 
    and testtable2.PERMNO = testtable1.testcolumn 
+0

我试过你的查询它返回:错误代码:1054.未知列'testtable1.BE'在'子句' –

+0

我试过你更简单的方法,它给了我一个1054错误未知列testtable1.testcolumn ..... –

+0

http ://stackoverflow.com/questions/15209414/mysql-update-join检查这个帖子和其他几个人在堆栈溢出 –

相关问题