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)