mysql:字段列表中的未知列

mysql:字段列表中的未知列,mysql,sql,mysql-error-1054,Mysql,Sql,Mysql Error 1054,我正在创建一个程序,以便查找考试的最后日期。 所以我为它创建了一个局部变量,因为我在其他方面也需要这个日期。但是,当我简单地选择这个局部变量时,我会得到以下消息: “字段列表”中的未知列“上次考试” 代码: 在select中,是否需要包含FROM子句?我不这么认为,因为我认为最新的考试在程序中。您没有在变量中指定select的结果 这样做 select latest_exam = date(max(ex_date)).. 我认为,交叉联接可以回答您的问题,因为它从两个表中产生笛卡尔积。试试这个

我正在创建一个程序,以便查找考试的最后日期。
所以我为它创建了一个局部变量,因为我在其他方面也需要这个日期。但是,当我简单地选择这个局部变量时,我会得到以下消息:

“字段列表”中的未知列“上次考试”

代码:


在select中,是否需要包含FROM子句?我不这么认为,因为我认为最新的考试在程序中。

您没有在变量中指定select的结果

这样做

select latest_exam = date(max(ex_date))..

我认为,
交叉联接
可以回答您的问题,因为它从两个表中产生笛卡尔积。试试这个

SELECT x.maxDate,
       b.*
FROM tableName b,
    (
        SELECT DATE (max(ex_date)) maxDate
        FROM vets
        WHERE an_id = p_animal_id
        GROUP BY an_id
    ) x

我也有同样的问题;事实证明,这不是我在过程中的SELECT INTO查询(是的,是的),而是后来在该外部过程中对另一个实际错误的过程进行的调用

我只是在使用模拟值在过程之外确认我的查询后才发现这一点:

SET @this_RID=0, @this_RANo=0, @this_modpos=0;

SELECT Response_ID, Response_attempt_No, position, UNCOMPRESS(RAMX.`data`)
INTO @this_RID, @this_RANo, @this_modpos, @this_XML 
FROM RAMX
WHERE 
    Response_ID>=@this_RID AND Response_attempt_No>=@this_RANo AND position>=@this_modpos 
    AND (NOT (Response_ID=@this_RID AND Response_attempt_No=@this_RANo AND position=@this_modpos))
    AND module_ID=2
    AND `data` <> ""    
ORDER BY Response_ID, Response_attempt_No, position
LIMIT 1;

SELECT @this_RID, @this_RANo, @this_modpos;

+-----------+------------+--------------+
| @this_RID | @this_RANo | @this_modpos |
+-----------+------------+--------------+
|    451994 |          0 |            1 |
+-----------+------------+--------------+
1 row in set (0.00 sec)
设置@this\u RID=0、@this\u RANo=0、@this\u modpos=0;
选择响应ID、响应尝试号、位置、解压缩(RAMX.`data`)
进入@this\u RID、@this\u RANo、@this\u modpos、@this\u XML
来自拉姆斯
哪里
响应ID>=@此RID和响应尝试\U No>=@此RANo和位置>=@此modpos
和(不是(响应\u ID=@this\u RID和响应\u尝试\u No=@this\u RANo和position=@this\u modpos))
和模块_ID=2
和“数据”
按响应ID、响应尝试号、位置排序
限值1;
选择@this_RID、@this_RANo、@this_modpos;
+-----------+------------+--------------+
|@this|u RID |@this|u RANo |@this|u modpos|
+-----------+------------+--------------+
|    451994 |          0 |            1 |
+-----------+------------+--------------+
一行一组(0.00秒)
调用外部过程是在更正其调用的过程之前出现此错误:


错误1054(42S22):“字段列表”中的未知列“数据”

MySQL没有
SELECT-INTO
查询。
SELECT-INTO
不适用于MSSQLMySQL@JohnWoo:Oracle和PostgreSQL。但与SQL Server不同的是,错误消息提到了上次考试,但在SQL中从未出现过。有些东西你没有给我们看(可能是在“一堆其他东西”中)。或者,
latest_-examing
是否为
last_-examing
的打字错误?@user163819如果这有效,请将其打勾为正确,以便有此问题的任何其他人都知道可以用此解决问题;)
SET @this_RID=0, @this_RANo=0, @this_modpos=0;

SELECT Response_ID, Response_attempt_No, position, UNCOMPRESS(RAMX.`data`)
INTO @this_RID, @this_RANo, @this_modpos, @this_XML 
FROM RAMX
WHERE 
    Response_ID>=@this_RID AND Response_attempt_No>=@this_RANo AND position>=@this_modpos 
    AND (NOT (Response_ID=@this_RID AND Response_attempt_No=@this_RANo AND position=@this_modpos))
    AND module_ID=2
    AND `data` <> ""    
ORDER BY Response_ID, Response_attempt_No, position
LIMIT 1;

SELECT @this_RID, @this_RANo, @this_modpos;

+-----------+------------+--------------+
| @this_RID | @this_RANo | @this_modpos |
+-----------+------------+--------------+
|    451994 |          0 |            1 |
+-----------+------------+--------------+
1 row in set (0.00 sec)