可能重复:
MySQL use column names from another tableMySQL的选择值间接地通过不同的 '列名'
我有两个表:
TABLE_1从提取的一些话任何文字;和
TABLE_2与在相关文本
我倒是的单词(在列)频率喜欢以产生具有AUTHOR_ID和字TABLE_3(成行)存在于文本:
Table 3 http://www.infociencias.net/images/tab3.jpg
如何做到这一点在MySQL?
可能重复:
MySQL use column names from another tableMySQL的选择值间接地通过不同的 '列名'
我有两个表:
TABLE_1从提取的一些话任何文字;和
TABLE_2与在相关文本
我倒是的单词(在列)频率喜欢以产生具有AUTHOR_ID和字TABLE_3(成行)存在于文本:
Table 3 http://www.infociencias.net/images/tab3.jpg
如何做到这一点在MySQL?
这是一个UNPIVOT
您正在尝试做的,但MySQL没有一个UNPIVOT
功能,所以你需要使用它UNION ALL
复制:
SELECT c.author_id, words, value
FROM Table1 A
INNER JOIN
(
select author_id, alfa value, 'alfa' col
from table2
union all
select author_id, car value, 'car' col
from table2
union all
select author_id, zoom value, 'zoom' col
from table2
) C
ON A.words = C.col
order by c.author_id
结果:
| AUTHOR_ID | WORDS | VALUE |
-----------------------------
| 123 | alfa | 3 |
| 123 | zoom | 0 |
| 123 | car | 0 |
| 157 | alfa | 0 |
| 157 | zoom | 2 |
| 157 | car | 0 |
| 332 | alfa | 1 |
| 332 | zoom | 0 |
| 332 | car | 3 |
| 519 | car | 0 |
| 519 | alfa | 0 |
| 519 | zoom | 0 |
| 588 | car | 1 |
| 588 | alfa | 5 |
| 588 | zoom | 0 |
| 777 | car | 0 |
| 777 | alfa | 0 |
| 777 | zoom | 1 |
| 804 | car | 7 |
| 804 | alfa | 0 |
| 804 | zoom | 5 |
嗨,bluefeet!如果我以前能够知道这些单词就没问题,但我不能。每个不同的文字都有不同的词。所以,不幸的是,表中偶尔会出现阿尔法,汽车,放大等字样。我真的需要一个动态解决方案。 –
@RomualdoAlves你将不得不考虑创建一个过程来动态生成这个sql,然后执行它。 – Taryn
叹气。 _你有没有试过?_ – Madbreaks
你可以发布你想要的结果吗? – Taryn
SELECT B.Author_Id,A.Column_Name FROM TABLE_1 A,TABLE_2 B,INFORMATION_SCHEMA.COLUMNSÇ 在表格名= 'TABLE_2' AND COLUMN_NAME = A.Column_Name –