复杂更新Sql语句

时间:2013-06-13 18:20:45

标签: php sql sql-update

我有两个表,一个表有一个id,一个username表的名称是user。我有另一个名为value的表,该表有一个id,用于存储user表中的id。表格value还有一个名为valueitem_id的列,用于存储该项目。

我想编写一个更新语句来更新值id, value, item_id中的以下列,但是我必须执行该语句的值是username = $username, value = $value and item_id=$item_id(基于应用程序)

如何编写存储id(用户名ID),valueitem_id

的更新语句

使用更新语句的原因是因为该用户可以随时更改value列中的值

2 个答案:

答案 0 :(得分:0)

UPDATE `value` SET `value` = $value WHERE item_id = $item_id 
AND user_id IN (SELECT id FROM `users` WHERE username = $username)

务必清理数据库输入。

这只会更新,如果你想创建条目(我假设user_id和item_id是第二个表的组合主键),你可以使用replace into语句。

如果你需要,请告诉我,因为我认为这不是问题。

它可能效率不高但我认为这并不重要,但您当然可以先使用单独的查询来获取用户ID。

这可能会更容易理解。

答案 1 :(得分:0)

试试这个

UPDATE value, user
SET value = $value
WHERE item_id = $item_id
AND value.user_id = user.user_id
AND user.username = $username;