2011-10-28 31 views
2

考慮以下兩個MySQL表匹配的id:阿爾特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股票代碼。表格「推文」包含數百萬條推文。這些推文是通過查詢Twitter.com收集的每一個代碼,由「$」前綴收集的,因爲這是Twitter在談論某種股票時的慣例。我現在想正常化的鳴叫表,如下所示:

tweets 
----------------------- 
tweet_id query (etc...) 
1  1 
2  1 
3  2 
4  3 
5  1 
6  4 
7  4 

所以,現在,被查詢股票ID爲1,是AA得到tweet_id一個鳴叫(以下簡稱「$」是沒有必要店在數據庫中)。現在我的問題是:有沒有辦法使用一個sql查詢更新tweets-table中的查詢列?您的幫助將不勝感激,因爲我看到很多工作(如果這不可能,通過使用PHP)可能會提前做大量工作:)

+0

@ a'r已經得到了答案。然而,您的模式可能需要一點返工,因爲您似乎想要在字符串列('tweets.query')中存儲整數ish外鍵('companies.id')。 – pilcrow

回答

4

您可以使用更新連接。像這樣:

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