mysql - 检索别名的基础列名
问题描述
假设我有以下查询。
SELECT UserSub.Lastname
FROM (
SELECT UserId, Email, Firstname, Lastname as COL_1234
FROM Users
)
as UsersSub;
这将导致错误
Error Code: 1054. Unknown column 'UsersSub.Lastname' in 'field list'
我知道它不起作用,因为Lastname
子查询没有返回该列。当我改变它时UsersSub.Lastname
,UsersSub.COL_1234
它可以完美地工作。但我需要一种基于别名检索原始列名的方法。子查询是由我无法更改的另一部分代码生成的,所以我对此没有影响。因为稍后我需要在查询中添加 where 子句,并且需要搜索别名字段。因此,在即将推出的功能中,查询将如下所示。
SELECT UserSub.Lastname
FROM (
SELECT UserId, Email, Firstname, Lastname as COL_1234
FROM Users
)
as UsersSub
WHERE UserSub.Lastname LIKE '%son';
解决方案
我认为这会起作用:
SELECT u.Lastname
FROM (
SELECT UserId, Email, Firstname, Lastname as COL_1234
FROM Users
) AS UsersSub
LEFT JOIN ON Users AS u WHERE UsersSub.UserId = u.UserId
WHERE UserSub.Lastname LIKE '%son';
推荐阅读
- python - Django login() 在 HttpResponseRedirect 之后不会持续存在
- mysql - MySQL if 语句使用聚合函数返回不正确的结果
- regex - 多个自定义 grok 模式不匹配,但它们单独成功匹配?
- java - 存储过程调用(命名参数jdbctemplate)
- flutter - 如何为我的下拉菜单添加自定义选项?
- r - 我需要在情节上标出最大的不同
- bash - 如何在文件夹中使用 CHMOD 运行 Shell 脚本
- swift4 - PDFViewer SWIFT 4 Xcode 10.3
- node.js - 如何结束while循环,直到数据库中没有匹配数据?
- c# - 安装多个 XLL 插件时删除 XLL 插件