$query = "SELECT loved FROM users WHERE uid=:quitter";
$query = "UPDATE users SET status='0', loved=NULL, beloved_count='0' WHERE uid=:deceased";
$query = "UPDATE users SET beloved_count=beloved_count-1 WHERE uid=:lover";
因为我的代码可能不太清楚,所以发生了什么:
用户123退出。
我需要
1)找出123“被爱”的人
2)更新123的行(设置状态='0'等)
3)更新“被爱”用户的行并将“beloved_count”减少1
这一切都在一张桌子内进行。一次查询会发生这种情况吗?理想情况下,我想用一个查询来完成它,但即使两个查询也比我用3个单独的查询更好。
我看过JOIN
,但我不清楚,因为我以前从未使用过它们。我已经看过查询组合的例子,但没有任何反映这一点。我正在使用PHP 5.4和PDO。
类似的东西:
$query = "UPDATE users SET status='0', loved=NULL, beloved_count='0' WHERE uid=:deceased;
UPDATE users SET beloved_count=beloved_count-1 WHERE uid=:lover;";
答案 0 :(得分:0)
也许是这样的?基本上,你正在加入退出用户的所有用户。
UPDATE
users AS u1,
users AS u2
SET
u1.status='0',
u1.loved=NULL,
u1.beloved_count='0',
u2.beloved_count=u2.beloved_count-1
WHERE
u1.uid=:quitter
AND u1.loved=u2.uid;