2012-11-07 62 views
1

我在使用SQL數據庫在PHP中創建一個小型消息傳遞應用程序,但遇到了一個小問題。我會嘗試儘可能地使這裏去解釋這個...如果在「表」中滿足條件,則從「表1」中刪除2 SQL

我有一個表稱爲「用戶」如下:

ID | Username | Password | Email 
------------------------------------------- 
1 | Account1 | Pass 1 | [email protected] 
2 | Account2 | Pass 2 | [email protected] 

我再有另一個名爲「朋友」如下:

UserID | FriendID 
------------------ 
    1 |  2  

所以我需要的是一個查詢,如果第二個表中滿足條件,將從「Friends」表中刪除一行。

例子:

DELETE FROM 'friends' WHERE UserID = 1 AND (users.Password = $Password WHERE users.ID = 1) 

我希望這是一個足夠好的解釋,但我發現這很難解釋。

+0

這是MySQL還是其他DBMS? –

+0

你能用英文(而不是代碼)描述你想要做什麼嗎?像「我試圖讓所有的用戶的朋友,但只有當該用戶提供了正確的密碼」? – corsiKa

+0

@ypercube這是MySQL :) –

回答

1
DELETE FROM 'friends' 
WHERE UserID IN (
    SELECT UserID 
    FROM users 
    WHERE Password=$Password 
    AND UserID=1 
) 

應該工作。您不需要將UserId字段列出兩次,這將是多餘的。

+0

這段代碼能工作嗎? 函數DeleteFriend($ UserID,$ FriendID,$ Password){ $ Query =「DELETE FROM'rabbit_friends'WHERE UserID IN(SELECT ID FROM rabbit_users WHERE ID =?AND Password =?)AND FriendID =?」; if($ Statement = $ this-> Connection-> prepare($ Query)){Statement-> bind_param('isi',$ UserID,$ Password,$ FriendID); if($ Statement-> execute()){ $ Statement-> close(); 返回true; } } }' –

+0

@ user1807226 - 只要'rabbit_friends.UserID'與'rabbit_users.ID'相同,這似乎是有效的 –

相關問題