如何在彼此之间获得两张桌子?

时间:2016-07-01 12:24:27

标签: sql tsql

我有一个表格,其中包含不同数据集的列名。 E.g。

ID|Col1   |Col2   |Col3|
------------------------
23|Name   |City   |Age |
24|Answer1|Answer2|Name|

我有另一个表,其中包含上表中每个列的数据。

ID|Col1   |Col2   |Col3|
------------------------
23|Marc   |Paris  |45  |
23|Frank  |Berlin |14  |
23|Ole    |Oslo   |65  |
24|Yes    |Yes    |Alex|
24|No     |Yes    |Thea|

我正在寻找一种方法来获取一个带有where = ID的表,第一列包含列名,然后是属于该列的数据。 E.g。

ID|Col1   |Col2   |Col3|
------------------------
23|Name   |City   |Age |
23|Marc   |Paris  |45  |
23|Frank  |Berlin |14  |
23|Ole    |Oslo   |65  |

我已经尝试了不同的联接,但我得到的只是一列中的所有数据彼此之间没有。谁能在这帮助我?

我正在使用SQL Server使用TSQL方言,但我猜答案并非针对TSQL,所以我也添加了SQL标志。< / p>

2 个答案:

答案 0 :(得分:0)

以下带有ID = 23的SQL为您提供了预期的结果:

SELECT Col1, Col2, Col3
FROM   COLUMN_NAMES
WHERE  ID = 23
UNION
SELECT Col1, Col2, Col3
FROM   DATA
WHERE  ID = 23

答案 1 :(得分:0)

SELECT Col1, Col2, Col3, 1 as [sort]
from table1 
where id = 23 
union all 
SELECT Col1, Col2, Col3, 2 
from table2
where id = 23  
order by sort