zoukankan      html  css  js  c++  java
  • 外键的具体应用和表连接!

      前面刚发了一篇关于如何定义外键的博文,但是没有讲到外键是如何应用的,因为今天我要实现一个功能,我就到百度上查了一下,其中有一个网友的回答非常好,它说外键的作用是维护两表之间数据的完整性,但是如果要目标表中的字段在源表中显示要用到表的连接.

      关于表连接,我在杨中科老师的<<程序员的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 所有条件,如我在项目中用的具体代码如下:

    View Code
    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条件必须放在最后,否则会报错.

     

  • 相关阅读:
    Javascript本质第二篇:执行上下文
    Javascript本质第一篇:核心概念
    跨线程委托执行
    .NET中STAThread和MTAThread
    用管道实现流的分支
    Async和Await异步编程的原理
    在.NET中使用管道将输出流转换为输入流
    致木兄的一封信
    完整打造一个多功能音乐播放器项目(初步设想跟酷狗类似)
    新冠疫情下各大网站的变化
  • 原文地址:https://www.cnblogs.com/mcgrady/p/2173232.html
Copyright © 2011-2022 走看看