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

 
   | |

导读:本文主要回答如何给同一表的两个外键写SQL查询的问题。

关键词:SQL查询 Oracle数据库 如何给两个外键写SQL查询

正在加载数据... 【TechTarget中国原创】当以其中的一个表有两个外键指向另一个表的主键时,我们怎样从两个表中检索数据?例如,表A有两个列,Parent_ID和Child_ID。表B有两个列,ID和名字。我们怎样检索数据并让这些数据按照Parent_ID、Parent_Name、Child_ID和Child_Name显示?

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

 
查看全文
 
 
 
 
 

Oracle SQL

 
SELECT子句通常是一个SELECT语句的第一个子句。它标识出你所想要包含到结果集中的列。这些列是从在FROM子句中指定的基表中返回的。
 
没有ORDER BY子句,Oracle不会保证行显示的顺序。它们可能是按照你想要的顺序排列,但也可能不是。
 
Toad For Oracle的产品策略就是为Oracle开发一款工具,它可以满足不同人的不同需求,比如DBA、开发人员、分析师以及管理者等等。
 
据Toad For Oracle产品经理John Pocknell所说,这次发布的Toad 10致力于生产力的概念,其中包括了:灵活性、易用性、自动化和协作等内容。
 
如何找到会话中正在运行的存储过程?你需要找到会话中正在运行的SQL语句,存储过程就是以SQL语句的形式出现的。
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录