让我们想象一下3个表的连接,例如它有14个列.我想用别名重命名其中一列.有没有办法或者不必在select语句中写入其他13个列名?
我正在寻找伪代码是什么
SELECT * [rename user.login as username] from users join
(select * from statistics join accounts)
Run Code Online (Sandbox Code Playgroud)
select users.login as username, users.*
from users
Run Code Online (Sandbox Code Playgroud)
不幸的是,该列会出现两次,但是你无能为力.
使用join,它看起来像这样:
select u.login as username, u.*, s.*
from users as u, statistics as s
where u.user_id = s.user_id
Run Code Online (Sandbox Code Playgroud)
IMO,您提出的语法是一个很好的语法。其实它和数据库语言Tutorial D很相似:
user RENAME ( login AS username )
Run Code Online (Sandbox Code Playgroud)
将从user相关变量中投影所有 14 个属性,其中一个属性按指定重命名。
类似地,教程 D 有一个ALL BUT投影算子,例如
user { ALL BUT login }
Run Code Online (Sandbox Code Playgroud)
在你的例子中会产生 13 个属性的关系。
遗憾的是,SQL 从来没有这些有用的快捷方式,而且可能永远不会。也许我们应该认为自己很幸运,能够SELECT *早日获得成功。在最近的时代我们永远不会被授予它!代表 SQL 用户的小组向 SQL 标准委员会提出了类型语法的提案SELECT * BUT <commalist>,但遭到拒绝。SELECT *也不喜欢SO!
| 归档时间: |
|
| 查看次数: |
6148 次 |
| 最近记录: |