SQL Server:加入一个表

时间:2015-02-09 13:24:40

标签: sql

我正在尝试将数据从SQL提取到excel文件,以下是表中的示例数据。 数据只存在于一个表中,我无法控制数据插入其中的方式,因此无法在多个表之间使用连接。

 +------+--------------------------------+--------------------------------------+------------------------------------+
 |  ID  |              URL               |                TITLE                 |              LINKS_TO              |
 +------+--------------------------------+--------------------------------------+------------------------------------+
 | 1    | http://www.loc.gov/            | Library                              | http://www.loc.gov/library         |
 | 2    | http://www.loc.gov/library     | Catalog                              | NULL                               |
 | 3    | http://www.nasa.gov/           | NASA                                 | http://www.nasa.gov/images         |
 | 4    | http://www.nasa.gov/images     | National Institutes of Health (NIH)  | NULL                               |

我需要提取OR​​IGINAL_URL及其外链的标题(LINKS_TO),如下面的输出所示。我试着把桌子加到自己身上,但这对我来说太复杂了。这是想要的输出。

 +------------------------------+---------------------------------------+
 |          ORIGIN_URL          |                 TITLE                 |
 +------------------------------+---------------------------------------+
 | http://www.loc.gov/          | Catalog                               |
 | http://www.nasa.gov/         | National Institutes of Health (NIH)   |

请帮忙吗?

1 个答案:

答案 0 :(得分:2)

你可以自己LEFT OUTER JOIN这个表:

SELECT U.URL AS ORIGIN_URL,          
       Linked.TITLE
FROM dbo.URLs U
LEFT OUTER JOIN dbo.URLs Linked
   ON U.LINKS_TO = Linked.URL    

如果您只想要链接的内容,请使用INNER JOIN

SELECT U.URL AS ORIGIN_URL,          
       Linked.TITLE
FROM dbo.URLs U
INNER JOIN dbo.URLs Linked
   ON U.LINKS_TO = Linked.URL