SELECT COLUMN_NAMES在其他TABLE(mysql)中是VALUE

时间:2014-04-13 14:03:36

标签: mysql sql

tbl 1

+--------+------+------+------+------+-----+
|   ID   |  th  | room |  A   |  B   |  C  |
+--------+------+------+------+------+-----+
|      1 |  10  |    1 |   50 |   60 |  70 |
|      2 |  20  |    1 |  100 |  120 | 140 |
|      3 |  30  |    2 |  150 |  180 | 210 |
|      4 |  40  |    2 |  200 |  240 | 280 |
+--------+------+------+------+------+-----+

tbl 2

+--------+------+------+
|   ID   | rom  | CLM  |
+--------+------+------+
|      1 |   1  |   A  |
|      2 |   1  |   B  |
|      3 |   2  |   A  |
|      4 |   3  |   A  |
|      5 |   3  |   B  |
|      6 |   4  |   C  |
+--------+------+------+
  • 如果tbl_2.rom = 1 tbl_2.clm = A ,那么我想从tbl_1中选择COLUMN " A"

  • 如果tbl_2.rom = 1 tbl_2.clm = B ,那么我想从tbl_1中选择COLUMN " B"

  • 如果tbl_2.rom = 4 tbl_2.clm = C ,那么我想从tbl_1中选择COLUMN " C"

如何在查询中执行此操作?提前致谢

2 个答案:

答案 0 :(得分:1)

SELECT a.room, CASE WHEN b.clm='A' THEN a.A WHEN b.clm='B' THEN a.B ELSE a.C END 
FROM tbl_1 a INNER JOIN tbl_2 b ON a.room=b.room

答案 1 :(得分:0)

这是你想要的吗?

select tbl_1.*, tbl_2.CLM from tbl_1,tbl_2 where tbl_1.room=tbl_2.room