2012-12-15 80 views
1

對於我只想保留一個查詢的查詢有一點麻煩。基本上,我有兩個表格,用戶和關係。用戶具有ID,關係表具有包含users.id值的user_a和user_b字段,它們將用戶匹配爲'user_a跟隨user_b'。MySQL INSERT如果記錄存在於另一個表中

現在我點擊Twitter API以吸引user_a的關注者(https://dev.twitter.com/docs/api/1/get/friends/ids),但用戶表中的人員是參加事件,而不一定在user_a的朋友中。如果user_b存在於users表中,我需要在關係表中執行INSERT。

這是我到目前爲止!

$json = file_get_contents('https://api.twitter.com/1/friends/ids.json?cursor=-1&user_id=' . $this->_attendee->id); 
$response = json_decode($json); 
if($response->ids){ 
    foreach($response->ids as $friend){ 
     // query goes here 
    } 
} 
+0

可能與觸發器,直接在MySQL級別。我不記得具體的定製觸發器允許什麼級別... – maxdec

+0

我認爲你正在尋找:'$ itll-> be() - > reet();' –

回答

3

一個返回要準確地添加,如果用戶條目存在行的SELECT語句。然後執行INSERT INTO user_a SELECT YOUR_STATEMENT;

例如。 INSERT INTO user_a SELECT uid,「value1」,2,「一些其他字符串」FROM user_b WHERE uid = $ friend;

+0

謝謝,用INSERT INTO關係解決了它( user_a,user_b)VALUES('43849096',(SELECT id FROM attendees WHERE id = 2946339244));' – garethpoole

+0

如果user_b沒有匹配的條目,則返回null,對嗎?從你的問題來看,在這種情況下應該發生什麼不是很清楚 - 我的發言根本沒有插入任何東西。 –

相關問題