目前有一个函数使用以下 SQL 语句:
SELECT `plans`.`concurrents`
FROM `plans`
LEFT JOIN `users` ON `users`.`membership` = `plans`.`ID`
WHERE `users`.`ID` = ?`
我正在尝试添加到 SQL 语句中,以便它还将“users”表中“extra_concurrents”列中的值添加到从上面的 SQL 语句返回的值。
我尝试过,但没有成功:
SELECT `plans`.`concurrents`
FROM `plans`
LEFT JOIN `users` ON `users`.`membership` AND `users`.`extra_concurrents` = `plans`.`ID`
WHERE `users`.`ID` = ?`
我需要返回plans.concurrents和users.extra_concurrents加在一起的总值(value)
最佳答案
我需要对您的询问说一些话。 左连接
是完全没有必要的。您的 where
子句将其转变为内部联接。
然后,我推荐表别名,以简化查询。剩下的就是加法:
SELECT p.concurrents + coalesce(u.extra_concurrents, 0)
FROM plans p JOIN
users u
ON u.membership = p.ID
WHERE u.ID = ?;
另请注意 coalesce()
,以防 users.extra_concurrents
列为 NULL
。
关于php - SQL LEFT JOIN & AND 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50469836/