选择列名称是其他表中的值(mysql)
tbl 1 tbl 2选择列名称是其他表中的值(mysql),mysql,sql,Mysql,Sql,tbl 1 tbl 2 如果tbl_2.rom=1tbl_2.clm=A,那么我想从tbl_1中选择列“A” 如果tbl_2.rom=1tbl_2.clm=B,那么我想从tbl_1中选择列“B” 如果tbl_2.rom=4tbl_2.clm=C,那么我想从tbl_1中选择列“C” 如何在查询中实现?提前谢谢你这是你想要的吗 +--------+------+------+ | ID | rom | CLM | +--------+------+------+ | 1 |
- 如果tbl_2.rom=1tbl_2.clm=A,那么我想从tbl_1中选择列“A”
- 如果tbl_2.rom=1tbl_2.clm=B,那么我想从tbl_1中选择列“B”
- 如果tbl_2.rom=4tbl_2.clm=C,那么我想从tbl_1中选择列“C”
如何在查询中实现?提前谢谢你这是你想要的吗
+--------+------+------+
| ID | rom | CLM |
+--------+------+------+
| 1 | 1 | A |
| 2 | 1 | B |
| 3 | 2 | A |
| 4 | 3 | A |
| 5 | 3 | B |
| 6 | 4 | C |
+--------+------+------+
这看起来像是一个设计拙劣的问题,这是第一次:)thnks,但它仍然给我col | a | B | C |,我只需要一个col|u name(按tbl|2的值)
+--------+------+------+
| ID | rom | CLM |
+--------+------+------+
| 1 | 1 | A |
| 2 | 1 | B |
| 3 | 2 | A |
| 4 | 3 | A |
| 5 | 3 | B |
| 6 | 4 | C |
+--------+------+------+
select tbl_1.*, tbl_2.CLM from tbl_1,tbl_2 where tbl_1.room=tbl_2.room
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