我正在调试一个巨大的MySql调用,该调用连接了大量共享列名称的表,例如id,created_at等.我开始把它拆开但是我想知道是否有办法做类似的事情:
SELECT * AS table.column_name FROM table1 LEFT JOIN etc etc etc...
Run Code Online (Sandbox Code Playgroud)
代替必须单独命名列,如:
SELECT table1.`column2' AS 'NAME', table1.`column3` AS ...
Run Code Online (Sandbox Code Playgroud)
如果有办法,它肯定有助于加快调试过程.
谢谢.
编辑:
谢谢你到目前为止的答案.他们不是我想要的,我认为我的问题有点含糊,所以我举个例子:
假设您在MySql架构中进行了此设置:
表:学生字段:INT id | INT school_id | VARCHAR 名称
表:学校领域:INT id | INT 名称
学生包含:
1 | 1 | "John Doe"
Run Code Online (Sandbox Code Playgroud)
学校包含:
1 | "Imaginary School One"
Run Code Online (Sandbox Code Playgroud)
执行MySql调用"SELECT*FROM students LEFT JOIN schools ON(students.school_id = schools.id)"将产生:
id | school_id | name | id | name
1 | 1 | "John Doe" | 1 | "Imaginary School One"
Run Code Online (Sandbox Code Playgroud)
我们知道的更好,我们知道第一个Id和Name列引用学生表,第二个Id和Name引用学校表,因为数据集非常小并且与其命名无关.但是,如果我们必须处理包含多个左连接和具有相似名称的列的结果集,那么它将开始变得难以阅读,并且通常您必须通过跟随连接来跟踪它.我们可以开始做类似的事了
SELECT school.name AS 'school_name', etc etc etc...
Run Code Online (Sandbox Code Playgroud)
但是,一旦开始处理大型数据集,这就变得非常不切实际.
我想知道是否有办法返回结果集,其中列名称将是这样的:
students.id | students.school_id | students.name | schools.id | schools.name
Run Code Online (Sandbox Code Playgroud)
如果我需要再次做类似的事情,这将对未来的参考有用.
如果您按顺序选择表,并添加带有名称的间隔列,该怎么办?
IE
select 'table1', t1.*, 'table2', t2.*, 'table3', t3.*
...
Run Code Online (Sandbox Code Playgroud)
至少这样您就不必命名特定的列。
| 归档时间: |
|
| 查看次数: |
5053 次 |
| 最近记录: |