如果在“表”2 SQL中满足条件,则插入“Table1”

时间:2012-11-07 20:29:16

标签: php sql insert conditional-statements

我发布了一个类似的问题,关于删除,这是关于插入。

您好,

我正在使用SQL数据库在PHP中创建一个小消息传递应用程序,但是遇到了一个小问题。我将尝试尽可能地解释这一点,所以这里......

我有一个名为"用户"如下:

ID | Username | Password | Email 
-------------------------------------------
1  | Account1 | Pass 1   | email1@mail.com
2  | Account2 | Pass 2   | email2@mail.com

然后我又有另一个叫#34;朋友"如下:

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

所以我需要的是一个将数据插入"朋友"如果在"用户"中满足条件,则使用表格表

示例:

INSERT INTO 'friends' VALUES('$UserID', '$FriendID') IF (users.Password = $Password WHERE users.ID = $UserID)

我希望这是一个很好的解释,但我发现这很难解释。

感谢您的帮助:)

3 个答案:

答案 0 :(得分:4)

这可能会这样做

INSERT INTO friends (userID, friendID)
SELECT $userID, $friendID
FROM users
WHERE (users.password = $password) and (users.id = $userid)

如果where子句匹配,则会因为匹配而插入很多行,并且由于您选择的是硬编码值而不是字段,因此您只需将这些值插入到friends表中。

答案 1 :(得分:1)

您需要将条件逻辑放在应用程序中,而不是放在SQL中。您的应用程序代码本身应负责确定是否应执行INSERT。

答案 2 :(得分:1)

尝试:

 INSERT INTO friends VALUES('$UserID', '$FriendID') where UserID in (Select ID from Users where users.Password = '$passoword' and users.ID = '$UserID')