考虑以下两个MySQL表:
companies
-----------------------
id ticker
1 AA
2 AAPL
3 ABT
4 AEP
tweets
-----------------------
tweet_id query (etc...)
1 $AA
2 $AA
3 $AAPL
4 $ABT
5 $AA
6 $AEP
7 $AEP
“公司”表包含700多种不同股票的股票代码。表“tweets”包含数百万条推文。这些推文是通过查询每个自动收报机的Twitter.com收集的,前缀为“$”,因为这是推特上谈论特定股票的惯例。我现在想对tweets表进行规范化,如下所示:
tweets
-----------------------
tweet_id query (etc...)
1 1
2 1
3 2
4 3
5 1
6 4
7 4
所以现在,通过查询id为1的股票代码来获取tweet_id的推文,获得AA(“$”不再需要存储在数据库中)。现在我的问题是:有没有办法用一个sql查询更新tweets-table中的查询列?非常感谢您的帮助,因为如果不可能,我会看到很多工作(可能使用PHP):)
答案 0 :(得分:4)
您可以使用更新联接。像这样:
UPDATE tweets t
JOIN companies c ON t.query = CONCAT('$', c.ticker)
SET t.query = c.id;