2015-06-25 2 views
2

Я продолжаю получать эту ошибку, когда столбец существует, может ли кто-нибудь сказать мне, почему?1054 error, unknown column in where clause

Это мой запрос:

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

И я получаю такой ответ:

Код ошибки: 1054. Неизвестный столбец 'testtable1.testcolumn' в 'где предложение'

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

Можете ли вы поделиться структуры таблицы теста1 и 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» в разделе «on» –

+0

Я пробовал ваш простой подход, он дает мне ошибку 1054 неизвестный столбец testtable1.testcolumn ..... –

+0

http : //stackoverflow.com/questions/15209414/mysql-update-join проверить этот пост и несколько других при переполнении стека –