更改MySQL表列以匹配另一个表中的id

时间:2011-10-28 12:50:22

标签: php mysql sql

考虑以下两个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):)

1 个答案:

答案 0 :(得分:4)

您可以使用更新联接。像这样:

UPDATE tweets t
    JOIN companies c ON t.query = CONCAT('$', c.ticker)
SET t.query = c.id;