2015-02-09 73 views
0

我想从SQL中提取数据到excel文件,下面是表中的示例数据。 数据仅存在于一个表中,我无法控制数据插入的方式,因此无法在更多的表之间使用连接。SQL Server:在一个表中加入

+------+--------------------------------+--------------------------------------+------------------------------------+ 
| 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和TITLE的是outlink(LINKS_TO)作为输出我把下面。我尝试加入桌子本身,但对我来说太复杂了。这是需要的输出。

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

请帮忙吗?

+0

学校工作?向我们展示您当前的尝试! – jarlh 2015-02-09 13:28:44

回答

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  
+0

谢谢你的答案。我试图简化该示例,但我的表包含列族,让我添加用于创建表的代码。 CREATE TABLE IF NOT EXISTS TBL(ID VARCHAR NOT NULL PRIMARY KEY,F.URL VARCHAR,P.TITLE VARCHAR,LINKS_TO VARCHAR);你能告诉我查询应该如何与列家庭? – user2598997 2015-02-09 13:44:31

+0

@ user2598997您的'CREATE TABLE'语句不包含'Families'列。 – 2015-02-09 13:46:14

+0

@ user2598997。 。 。蒂姆回答了你的问题。如果你还有其他问题,你应该问一下,提供你真正需要的更多细节。 – 2015-02-09 13:47:19