【发布时间】:2018-01-15 05:12:08
【问题描述】:
我有一个包含许多列的表。每个都代表它所代表的数据的特定“场景”。看起来像这样:
id | col1 | col2 | col3 | col4 | col5
---+--------+--------+--------+---------+---------
1 | 1200 | 100 | 1200 | 10000 | 1300
2 | 100 | 1400 | 2300 | 1200 | 900
3 | 3300 | 1200 | 400 | 600 | 12000
我有另一个存储实体的表和一个存储该实体的默认方案的列。看起来像这样:
id | city | state | default_scenario
---+------------+-------+-------------------
1 | Miami | FL | col3
2 | Detroit | MI | col2
3 | New York | NY | col1
我想从第二个表中获取结果并从第一个表中返回值,根据该行的default_scenario 是什么,作为结果中的一个额外列。
我认为这可以通过 JOIN 来完成,但我如何在同一查询中使用一行的值作为另一行的列名,而不使用 PHP?
这可能吗?
我尝试进行的查询将返回:
id | city | state | default_scenario | scenario_data
---+------------+-------+------------------+---------------
1 | Miami | FL | col3 | 1200
2 | Detroit | MI | col2 | 1400
3 | New York | NY | col1 | 3300
【问题讨论】:
-
你不能直接用SQL ..你必须使用dinamic sql(服务器端生成的sql代码)
标签: mysql