问:当以其中的一个表有两个外键指向另一个表的主键时,我们怎样从两个表中检索数据?例如,表A有两个列,Parent_ID和Child_ID。表B有两个列,ID和名字。我们怎样检索数据并让这些数据按照Parent_ID、Parent_Name、Child_ID和Child_Name显示。
答:只要将这个表连结两次。完成之后,你就必须使用表别名:
SELECT a.Parent_ID,bp.Name AS Parent_Name,a.Child_ID,bc.Name AS Child_Name
FROM TableA AS a INNER JOIN TableB AS bp ON bp.ID = a.Parent_ID INNER JOIN TableB AS bc ON bc.ID = a.Child_ID
注意在这一查询中TableB会出现两次。这就是说我们在它每次出现时都必须使用别名,而且要用SELECT语句、用合适的别名限定这些列。由于TableB两个实例中的列有相同的名称,即这一名称是共有的但不是必需的——所以我们要用SELECT语句对表别名复值。
分享到:
相关推荐
达梦数据库
需求是这样的,一个资源表有分类r_class_id(分类表id对应的外键) 创建者r_up_creator(用户表id对应的外键) 审核者r_ver_id (用户表id对应的外键),这时候该怎么将其都查询出来呢? 首先用左连接: select ...
MySQL 外键
用于查询某个数据库下所有表的外键约束情况,以便统一分析外键约束是否合理;主要查询出外键的,是否级联删除,级联更新,强制外键约束,强制复制约束始终状态。如想使用别的状态,请自行添加。下载的童鞋别下载错了...
设置外键.sql
就是为程序员提供了一条可以查询表的主键被其他表引用为外键情况的查询
查询一个表的所有外键名称,主键名称,主键列ID,主键列名,外键表ID,外键列ID,外键列名 级联更新,级联删除,索引名称,索引字段名,索引字段位置
mysql学校_无外键.sql
获得Microsoft SQL server外键集合,方便开发人员查看所有的外键,简化查询
C#查寻sql2000的当前数据库表结构
针对于初学者sqlserver外键的建立,详细的介绍了建立外键的几种方法。
外键.sql
项目中需要把一个数据库的部分表插入到另外一个数据库,设计到外键约束,写了一个程序对主表子表进行排序,插入的时候再也不用去考虑外键约束问题了
需要建立主外键关系的两个表的存储引擎必须是InnoDB。 外键列和参照列必须具有相似的数据类型,即可以隐式转换的数据类型。 外键列和参照列必须创建索引,如果外键列不存在索引,mysql将自动创建索引。 一、SQL...
SQL2008设置外键
表结构查询,主外键关联表名查询,
主外键 sql server
SQLServer生成所有外键存储过程,需要一次性将所有varchar改为Nvarchar,有些表具有外键限制不能用代码改。用这个过程,不用再每个表都检查了,不然天量的字段,改到什么时候哦。
sqlserver 2005 主外键-复合主键案例
sql学习 哪些表的外键未建索引.sql