我发布了一个类似的问题,关于删除,这是关于插入。
您好,
我正在使用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)
我希望这是一个很好的解释,但我发现这很难解释。
感谢您的帮助:)
答案 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')