我目前正在调试一个连接了大量表格的 MySql 查询语句,这些表格共享诸如 id、created_at 等列名。我已经开始逐步分析它,但我想知道是否有一种方法可以像下面这样做:
SELECT * AS table.column_name FROM table1 LEFT JOIN etc etc etc...
不必像以下这样逐个命名列:
SELECT table1.`column2' AS 'NAME', table1.`column3` AS ...
如果有一种方法可以加快调试过程,那肯定会有所帮助。
谢谢。
编辑:
感谢迄今为止的答案。它们并不完全符合我的要求,而且我认为我的问题有点含糊,因此我将举一个例子:
假设在您的 MySql Schema 中有以下设置:
table: students fields: INT id | INT school_id | VARCHAR name
table: schools fields: INT id | INT name
students 包含:
1 | 1 | "John Doe"
schools 包含:
1 | "Imaginary School One"
执行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"
我们知道得更清楚,第一个Id和Name列指的是学生表,第二个Id和Name指的是学校表,因为数据集非常小且采用了明确的命名方式。但是,如果我们需要处理包含多个左连接和类似名称的列的结果集,那么阅读起来就会变得困难,通常需要通过跟随连接来进行跟踪。我们可以开始像这样做:
SELECT school.name AS 'school_name', etc etc etc...
然而,当你开始处理大型数据集时,这种方法变得非常不切实际。
不过,我想知道是否有一种方法可以返回结果集,其中列名看起来像这样:
students.id | students.school_id | students.name | schools.id | schools.name
如果我将来需要做类似的事情,这将对未来的参考有所帮助。