Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 两列从一列读取_Sql_Oracle - Fatal编程技术网

Sql 两列从一列读取

Sql 两列从一列读取,sql,oracle,Sql,Oracle,我有一个包含这些列的表 Visit_ID , Location_ID , Next_Location_ID ---------- 0001 , 101 , 102 0002 , 105 , 102 0003 , 102 , 105 ---------- 还有一个表,上面有位置的详细信息,比如名称和其他信息 Location location_id , Name ---------- 101 , US 102

我有一个包含这些列的表

Visit_ID , Location_ID , Next_Location_ID
----------
0001     , 101         , 102
0002     , 105         , 102
0003     , 102         , 105
----------
还有一个表,上面有位置的详细信息,比如名称和其他信息

Location
location_id , Name
----------
101         , US
102         , UK
.
.
.
105         , CA
----------
我的问题是如何编写SQL语句来检索这些信息

Visit_ID , Location_ID , Next_Location_ID
0001     , US          , UK
0002     , CA          , UK
0003     , UK          , CA

加入
位置
表两次:

select v.Visit_ID, l1.Name, l2.Name
from VISITS v
join Location l1 on l1.location_id = v.Location_ID 
join Location l2 on l2.location_id = v.Next_Location_ID

访问
表连接到
位置
表两次-对于
访问
中的每个外键一次,如下所示:

select v.*, a.name location, b.name next_location
from visits v
join location a on a.location_id = v.location_id
join location b on b.location_id = v.next_location_id

执行此操作时,必须使用表别名(这里我使用了“a”和“b”)来区分查询中的乌鸦。

连接两个表!我不明白我必须加入它两次的诀窍。@jpw复制粘贴惰性错误:(在iPhone.Thx中插入代码的危险)。