首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jet (access)中,我可以在join中为列添加前缀吗?

在jet (access)中,我可以在join中为列添加前缀吗?
EN

Stack Overflow用户
提问于 2009-06-29 23:02:00
回答 3查看 310关注 0票数 1

我有一个演示应用程序,使用php与访问/Jet后端。我得到了这些(简化的)表:

代码语言:javascript
复制
People
------
ID
BankID    // foreign key in Banks
Name
Address

Banks
--------
ID
Name
Address

我正在做一个连接:

代码语言:javascript
复制
SELECT * FROM People LEFT JOIN on People.BankID = Banks.ID

避免名称冲突的最好方法是什么?这是可行的:

代码语言:javascript
复制
SELECT People.*, 
Banks.ID as BankID, 
Banks.Name as BankName, 
Banks.Address as BankAddress 
FROM People LEFT JOIN on People.BankID = Banks.ID

但是当你有超过几个列的时候,它会变得非常冗长。有没有办法说“给Banks表中的所有列加上‘Bank’前缀”?

EN

回答 3

Stack Overflow用户

发布于 2009-06-29 23:49:43

不需要,尽管您可以使用别名来缩短表名。

好吧,现在可能太晚了,但我使用了字段命名约定,它完全避免了重复的字段名称。Tony's Table and Field Naming Conventions有些人喜欢它。有些人已经独立地提出了相同的解决方案。其他人则讨厌它。耸肩

也就是说,如果您使用查询构建器,那么当您查看它生成的SQL语句时,Access会为您输入所有的表名。

票数 2
EN

Stack Overflow用户

发布于 2009-06-30 02:12:09

没有可以打开的“为我的列添加前缀”特性,但是既然您已经在PHP中工作,那么使用适当的“AS”关键字生成SQL应该非常简单。只需循环遍历所需的字段和表,并进行一些字符串比较。

正如Tony提到的,如果您使用查询构建器,Access将自动执行此操作,因此,如果您的查询是预定义的,则可以让Access为您执行此操作。

票数 0
EN

Stack Overflow用户

发布于 2009-06-30 07:53:48

使用表相关名(俗称“别名”)来限定SQL中的列,例如,这里的P1B1是相关名:

代码语言:javascript
复制
SELECT P1.*,
       B1.ID AS BankID,
       B1.Name AS BankName,
       B1.Address AS BankAddress
  FROM People AS P1
       LEFT OUTER JOIN Banks AS B1
          ON P1.BankID = B1.ID;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1060997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档