写了一个存储过程,搜索某个单词,同时返回这个用户对这个单词的状态。
到下面Update的时候,报错找不到列名jef_user_word.english。
但这个列名真的存在我发誓,我都能用这个列名select出数据来,就是加了where以后就不识别列名了。
CREATE DEFINER=`root`@`%` PROCEDURE `search_user_word27`(IN eng VARCHAR(50), IN user_id0 VARCHAR(64))
BEGIN
DROP TABLE IF EXISTS tttt;
CREATE TEMPORARY TABLE tttt(
eng VARCHAR(50) PRIMARY KEY,
chn VARCHAR(255),
st INT DEFAULT 0
);
INSERT INTO tttt(eng, chn) SELECT english,chinese FROM jef_word WHERE english LIKE CONCAT('%',eng,'%');
UPDATE tttt SET tttt.st =1 WHERE (tttt.eng=jef.jef_user_word.english) AND (jef_user_word.user_id=user_id0) AND (jef_user_word.status=1);
UPDATE tttt SET tttt.st =-1 WHERE ((tttt.eng=jef.jef_user_word.english) AND (jef_user_word.user_id=user_id0) AND (jef_user_word.status=-1));
SELECT eng,chn,st FROM tttt;
END;求大神解决,急啊就快交作业了
到下面Update的时候,报错找不到列名jef_user_word.english。
但这个列名真的存在我发誓,我都能用这个列名select出数据来,就是加了where以后就不识别列名了。
CREATE DEFINER=`root`@`%` PROCEDURE `search_user_word27`(IN eng VARCHAR(50), IN user_id0 VARCHAR(64))
BEGIN
DROP TABLE IF EXISTS tttt;
CREATE TEMPORARY TABLE tttt(
eng VARCHAR(50) PRIMARY KEY,
chn VARCHAR(255),
st INT DEFAULT 0
);
INSERT INTO tttt(eng, chn) SELECT english,chinese FROM jef_word WHERE english LIKE CONCAT('%',eng,'%');
UPDATE tttt SET tttt.st =1 WHERE (tttt.eng=jef.jef_user_word.english) AND (jef_user_word.user_id=user_id0) AND (jef_user_word.status=1);
UPDATE tttt SET tttt.st =-1 WHERE ((tttt.eng=jef.jef_user_word.english) AND (jef_user_word.user_id=user_id0) AND (jef_user_word.status=-1));
SELECT eng,chn,st FROM tttt;
END;求大神解决,急啊就快交作业了
有结果SELECT * FROM tttt WHERE (tttt.eng)=(jef_user_word.english) AND (jef_user_word.user_id='test user') AND (jef_user_word.status=1)
报错[42S22][1054] Unknown column 'jef_user_word.english' in 'where clause'
from tttt a ,jef_user_word b
where a.eng=b.english and b.user_id='test_user' and b.status=1;
而这个tttt 表中楼主确定有字段名 jef_user_word.english 吗? 估计是另外一张表jef_user_word吧。