1054错误,where子句中的未知列

时间:2015-06-25 07:18:42

标签: mysql-error-1054

当列确实存在时,我一直收到此错误,有人可以告诉我原因吗?

这是我的疑问:

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

1 个答案:

答案 0 :(得分: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