我有两张桌子:
TABLE_1,其中包含从任何文本中提取的一些单词;以及
TABLE_2,相关文字中的单词(以列为单位)
我想生成一个TABLE_3,其中包含Author_Id和文本中的单词(行):
Table 3 http://www.infociencias.net/images/tab3.jpg
如何在MySQL中执行此操作?
答案 0 :(得分:0)
这是您尝试执行的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 |