有没有办法自动将字符串前置到表中的所有选定字段?

时间:2011-11-09 14:30:07

标签: mysql select join

我有一个带连接的选择。 我知道我可以这样做:

table1.id as table1_id, table1.name as table1_name

我想知道在以这种方式选择字段时是否可以自动执行此操作:

table1.*

我完全理解这是不好的做法,但它对本地测试很有用,我想知道是否可以做这样的事情。

非常感谢。

1 个答案:

答案 0 :(得分:2)

我建议在id和name字段名称中添加一些额外的上下文(例如,如果你有表Person和Employer,你可以使用person_id和employer_id作为字段名称。)

除了更改表结构之外,我认为您不能自动将表名添加到您可以选择的字段中。但是,您可以为查询创建视图,然后在应用程序中从视图中进行选择。考虑这个例子:

+-------------+     +-------------+
| Person      |     | Employer    |
+-------------+     +-------------+ 
| id          |     | id          |
| name        |     | name        |
| employer_id |     +-------------+
+-------------+   

CREATE VIEW PersonEmployer AS
SELECT 
  person.id as `person_id`, 
  person.name as `person_name`, 
  employer.id as `employer_id`, 
  employer.name as `employer_name`
FROM 
 Person 
 INNER JOIN Employer ON (Person.employer_id = Employer.id);

SELECT * FROM PersonEmployer;