如何给同一表的两个外键写SQL查询

  问:当以其中的一个表有两个外键指向另一个表的主键时,我们怎样从两个表中检索数据?例如,表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语句对表别名复值。

猜你喜欢

转载自yangle926.iteye.com/blog/2319222
今日推荐