Sql 查询中有什么错误
这段代码有什么问题?它显示的表不存在错误1146我将您的语法改为:Sql 查询中有什么错误,sql,Sql,这段代码有什么问题?它显示的表不存在错误1146我将您的语法改为: SELECT * FROM ( SELECT emplname, length(emplname) AS m FROM employeesinfo ) as k where m = (select max(m) from k); 另一种通用方法是使用秩分析函数: SELECT emplname, LENGTH(emplname) AS name_length FROM employeesinfo WHERE L
SELECT *
FROM
(
SELECT emplname, length(emplname) AS m
FROM employeesinfo
) as k
where m = (select max(m) from k);
另一种通用方法是使用秩分析函数:
SELECT emplname, LENGTH(emplname) AS name_length
FROM employeesinfo
WHERE LENGTH(emplname) = (SELECT MAX(LENGTH(emplname)) FROM employeesinfo);
如果您只希望有一条记录具有最大长度,那么在MySQL上,我们可以使用LIMIT:
我将您的语法改为:
SELECT *
FROM
(
SELECT emplname, length(emplname) AS m
FROM employeesinfo
) as k
where m = (select max(m) from k);
另一种通用方法是使用秩分析函数:
SELECT emplname, LENGTH(emplname) AS name_length
FROM employeesinfo
WHERE LENGTH(emplname) = (SELECT MAX(LENGTH(emplname)) FROM employeesinfo);
如果您只希望有一条记录具有最大长度,那么在MySQL上,我们可以使用LIMIT:
表k未引用此查询中的派生表:
SELECT emplname, LENGTH(emplname) AS name_length
FROM employeesinfo
ORDER BY LENGTH(emplname) DESC
LIMIT 1;
您可能会混淆子查询和CTE。如果将其定义为CTE,则它将起作用:
SELECT k.*
FROM ( SELECT emplname, length(emplname) as m FROM employeesinfo
) k
WHERE m = (SELECT max(m) FROM k);
我应该注意到,可能有更好的方法来处理这个问题。例如,如果预期只有一个最大值,则可以使用:
WITH k as (
SELECT emplname, length(emplname) as m
FROM employeesinfo
)
SELECT k.*
FROM k
WHERE m = (SELECT MAX(m) FROM k);
表k未引用此查询中的派生表:
SELECT emplname, LENGTH(emplname) AS name_length
FROM employeesinfo
ORDER BY LENGTH(emplname) DESC
LIMIT 1;
您可能会混淆子查询和CTE。如果将其定义为CTE,则它将起作用:
SELECT k.*
FROM ( SELECT emplname, length(emplname) as m FROM employeesinfo
) k
WHERE m = (SELECT max(m) FROM k);
我应该注意到,可能有更好的方法来处理这个问题。例如,如果预期只有一个最大值,则可以使用:
WITH k as (
SELECT emplname, length(emplname) as m
FROM employeesinfo
)
SELECT k.*
FROM k
WHERE m = (SELECT MAX(m) FROM k);
我删除了不一致的数据库标记。仅使用您正在使用的数据库标记。我删除了不一致的数据库标记。仅使用您正在使用的数据库进行标记。从sELECT emplname中选择*,从employeesinfo中选择m,其中m=6,但它正在执行为什么。。。??u告诉correct我不了解ctesELECT*FROM SELECT employee name,lengthemplname作为m FROM employees作为k,其中m=6,但它正在执行为什么。。。??u告诉correct我不了解ctesELECT*FROM SELECT employee name,lengthemplname作为m FROM employees作为k,其中m=6,但它正在执行为什么。。。??u告诉correct我不了解ctesELECT*FROM SELECT employee name,lengthemplname作为m FROM employees作为k,其中m=6,但它正在执行为什么。。。??你说对了,我不懂cte