SQL将Select, Update和Join合并到一个查询中



我是sql的初学者,我通过php文档这样做。我需要知道如何将这些组合成一个查询。sql是粗糙的,但希望你们都应该得到我想做的想法。

**我要做的是在'stats'和'ufc133'表中加入'username'然后根据'ufc133'表中'pick1'中存储的值更新'scores'表

这是一个体育选秀网站的代码,我的目标是根据他们做出的正确或错误的选择给用户分数。分数和选择被存储在不同的表中。这个特殊的查询只针对'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
");
?>

update语句只能引用一个表。更新可以在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....
)

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

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

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

最新更新