0

我想从 2 个表中选择 *,但每个表的列名都以字符串为前缀,以避免重复的列名冲突。

例如,我想要这样的视图:

CREATE VIEW view_user_info as (
  SELECT   
    u.*,
    ux.*
  FROM
    user u,
    user_ex ux
);

其中所有结果的每一列都以表的名称为前缀:

例如

user_ID
user_EMAIL
user_ex_ID
user_ex_TITLE
user_ex_SIN

等等

我在这里放了一个 sql fiddle,它有这个概念,但当然不是正确的语法(如果可能的话)。

我正在使用 MySql,但如果存在通用解决方案,我会欢迎!

编辑:我知道我可以为每个字段设置别名,如评论之一所述。这就是我目前正在做的事情,但我发现在项目开始时,我必须在表格和视图发生变化时同步它们。我喜欢视图中包含每个表中的所有内容,然后我手动选择我需要的内容。一种懒惰的方法,但这可以让我更快地迭代,并且只在需要时进行优化。

4

1 回答 1

1

我发现在项目开始时,我必须在表格和视图发生变化时同步它们。

由于标准 SQL 并不真正支持您尝试做的事情,并且您在开发中不断修改数据库结构,我想知道您的最佳方法是否是编写一个小脚本SELECT为您重新创建该语句。也许将它包装在您选择的开发语言中的方法调用中?

本质上,您需要查询INFORMATION_SCHEMA感兴趣的表和列,可能通过连接,并以 SQL 样式写出结果。

然后在每次进行对您很重要的数据库结构更改时运行脚本,并神奇地观察您的代码跟上。

于 2013-11-05T20:52:03.407 回答