前面刚发了一篇关于如何定义外键的博文,但是没有讲到外键是如何应用的,因为今天我要实现一个功能,我就到百度上查了一下,其中有一个网友的回答非常好,它说外键的作用是维护两表之间数据的完整性,但是如果要目标表中的字段在源表中显示要用到表的连接.
关于表连接,我在杨中科老师的<<程序员的SQL金典>>中查询了表连接的用法,一般使用内连接,语法如下:
SELECT [源表].*,[目标表].[字段名称]
FROM [源表] INNER JOIN [目标表]
ON [源表].[外键]=[目标表].[主键]
where 条件
以上是两个表的连接,如果碰到需要多个表连接怎么办呢?问题总有解决的办法,只需要在后面加上:
FROM [源表] INNER JOIN [目标表]
ON [源表].[外键]=[目标表].[主键]
即可,例如四个表连接的语法如下:
select 所有需要展示的字段名 FROM ((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号 where 所有条件,如我在项目中用的具体代码如下:

select T_ApplyFormMgr.*,T_Scheduled.FScheduledName as FScheduledName,T_EuipType.FEuipTypeName as FEuipTypeName,T_UseType.FUseTypeName as FUseTypeName
from ((T_ApplyFormMgr inner join T_Scheduled on FScheduledId=T_Scheduled.FId) inner join T_EuipType on FEuipTypeId=T_EuipType.FId) inner join T_UseType
on FUseTypeId=T_UseType.FId where T_ApplyFormMgr.FScheduledId=1
其中需要注意的问题是:where条件必须放在最后,否则会报错.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架