我见过很多人声称你应该在选择查询中专门命名你想要的每一列.
假设我要使用所有列,为什么我不使用SELECT *?
即使考虑问题*SQL查询 - 从视图中选择*或从视图*选择col1,col2,... colN,我不认为这是完全重复的,因为我从一个略微不同的角度来看待问题.
我们的原则之一是不要在它之前进行优化.考虑到这一点,似乎使用SELECT *应该是首选方法,直到它被证明是一个资源问题或模式几乎是一成不变的.据我们所知,在开发完成之前不会发生这种情况.
那就是说,不使用是否有一个压倒一切的问题SELECT *?
在Google BigQuery(使用#standardSQL)上,当2个表之间存在Join时,我需要对每个表的所有列应用固定的前缀。
这是场景,我有这样的结构:
#standardSQL
WITH user AS (
SELECT "john" as name, "smith" as surname, 1 as parent
UNION ALL
SELECT "maggie" as name, "smith" as surname, 2 as parent
),
parent AS (
SELECT 1 as id, "john" as name, "doe" as surname
UNION ALL
SELECT 2 as id, "jane" as name, "smith" as surname
)
Run Code Online (Sandbox Code Playgroud)
用户表
+-----+--------+---------+--------+
| Row | name | surname | parent |
+-----+--------+---------+--------+
| 1 | john | smith | 1 |
| 2 …Run Code Online (Sandbox Code Playgroud)