SQL组合选择,更新和加入一个查询

时间:2011-08-04 22:20:32

标签: mysql

我是sql的初学者,我通过php文档做这个。我需要知道如何将这些组合成一个查询。 sql很粗糙,但希望你们都应该知道我正在尝试做什么。

**我要做的是加入'stats'和'ufc133'表中的'用户名' 然后根据'ufc133'表中'pick1'中存储的值更新'得分'表

这是一个体育频道网站的代码,我在这个问题上的目标是根据用户做出的正确或错误选择为用户提供分数。分数和选秀权存储在不同的表格中。此特定查询仅适用于'pick1'

守则:

<?php

mysql_query("
SELECT * FROM ufc133, stats JOIN stats ON ufc133.username = stats.username 
UPDATE stats SET score = (score + 10), mmascore = (mmascore + 10), mmawins = (mmawins + 1), mmagames = (mmagames + 1), wins = (wins + 1), games = (games + 1)
WHERE pick1 = 11
");

?>

2 个答案:

答案 0 :(得分:3)

更新语句只能引用一个表。您的更新可以在WHERE子句中包含子选择,以使您要更新的行的ID与某个查询的结果相匹配。例如:

UPDATE stats
SET score = (score + 10), mmascore = (mmascore + 10), mmawins = (mmawins + 1), mmagames = (mmagames + 1), wins = (wins + 1), games = (games + 1)
-- This part made up for illustration purposes
WHERE id IN (
    SELECT Table1.id from Table1 INNER JOIN Table2 ON Table1.id = Table2.id WHERE....
)

答案 1 :(得分:0)

您无法通过mysql_query()发送单独/多个语句。

  

mysql_query()向当前活动的数据库发送唯一查询(不支持多个查询)

您将不得不发出多个命令,或调用存储过程。