将一个表中的行映射到另一个表中的列?

时间:2014-01-02 09:45:26

标签: sql

我有一个数据集,其中我从一个表中获取值,该表本身就是另一个表中的列。它会看起来像这样。

TABLE1

ID    CATEGORY   ACTIVITY
551    ML         ART
552    PTL        SWEEPS
553    RDC        PIPO
554    ML         PIPO

TABLE2

ACTIVITY       ML   PTL  RDC 
ART            10   15   15 
PIPO           15   15   11
SWEEPS         12   10   15

现在支持我想要表格1中的551 ID和类别'ML',以获得ML,即表2中的活动'艺术'的'10'。 我怎么在sql中做到这一点?

1 个答案:

答案 0 :(得分:1)

使用子查询

SELECT * 
FROM   table2 
WHERE  activity = (SELECT activity 
                   FROM   table1 
                   WHERE  id = 551) 

或使用联接

SELECT t2.* 
FROM   table2 t2 
       JOIN table1 t1 
         ON t2.activity = t1.activity 
            AND t1.id = 551