从3个表中选择2列

Xan*_*rUu 4 sql sql-server-2005

我有3张桌子:

Table t1:     Table t2:     Table t3:     
+----+----+   +----+----+   +----+----+   
| i1 | i2 |   | i2 | c2 |   | i1 | c1 |   
+----+----+   +----+----+   +----+----+   
|  1 | 22 |   |  11| cc |   |  1 | e  |   
|  2 | 33 |   |  22| bb |   |  2 | f  |   
|  3 | 11 |   |  33| aa |   |  3 | g  |   
+----+----+   +----+----+   +----+----+   
Run Code Online (Sandbox Code Playgroud)

并且我想使用表t1和列i1和i2从t2和c3从t3中选择colum c2,结果将是thins:

requested Tabel:     
+----+----+   
| c1 | c2 |   
+----+----+   
|  e | bb |   
|  f | aa |   
|  g | cc |   
+----+----+   
Run Code Online (Sandbox Code Playgroud)

我做了一个像这样的联盟的选择:

select pve.c1
from dbo.t3 as pve
join dbo.t1 as v
on pve.i1 = v.i1
union
select vse.c2
from dbo.t2 as vse
join dbo.t1 as e
on vse.i2 = e.i2
Run Code Online (Sandbox Code Playgroud)

结果如下:

resulted Tabel:     
+----+
| i1 |
+----+
|  e |
|  f |
|  g |
|  bb|
|  aa|
|  cc|
+----+
Run Code Online (Sandbox Code Playgroud)

谢谢!

Joh*_*Woo 6

试试这个,

SELECT  c.c1, b.c2
FROM    t1 a
            INNER JOIN t2 b
                on a.i2 = b.i2
            INNER JOIN t3 c
                on a.i1 = c.i1
Run Code Online (Sandbox Code Playgroud)

SQLFiddle演示