MySQL更新一个表,但使用来自其他两个表的数据作为更新的一部分

时间:2012-02-28 17:27:10

标签: php mysql join

我希望更新数据库中的一个表,数据来自php POST。 (这是一个可以同时对行进行多次编辑的页面,然后它会一次性处理它们)我想要它为每个“行”或“循环”,它构建一个可以更新所有的查询一次排。

我想做的是,在查询中,从其他两个表中选择数据。 E.g

Posted data:
 - Task = "Check current Sponsors"
 - User Assigned = "Dan"
 - Start Meeting = "Mar 1st"
 - Meetings Required = 2

对于用户分配,我希望它基本上执行此查询:

  

SELECT id FROM team WHERE fullname LIKE'Dan'

对于开始会议,我希望它执行此查询:

  

SELECT id FROM meetings WHERE starttime ='“。strtotime(”Mar   第一 “)。”'

- strtotime()从字符串中生成一个unix时间戳。

但是我希望它为每个提交的“任务”执行此操作。 (它通过javascript排队,并将它们全部发送到同一个帖子请求中)

任何人对如何做到这一点都有任何想法? 提前致谢

表结构:

任务:

id | startmid | length | task           | uid | completed
1  | 2        | 1      | Check Sponsors | 1   | 0

会议:(由startmid加入)

id | maintask | starttime  | endtime
1  | Sponsors | 1330007400 | 1330012800

团队:(由uid加入)

id | fullname | position     | class | hidden
1  | Team     | All Members  | black | 0
2  | Dan S    | Team Manager | green | 0

1 个答案:

答案 0 :(得分:0)

您可以使用以下构造:

UPDATE mytable( col1, col2 )
SELECT col1_val, col2_val
FROM someothertables
WHERE cond1 = cond1;