php - SQL LEFT JOIN & AND 关键字

标签 php mysql sql

目前有一个函数使用以下 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/

相关文章:

PHP 'instanceof' 类常量失败

使用 wamp 服务器时 PHP 脚本不起作用

mysql - SQL查询输出 "yes"

mysql - 我需要在调用语句中执行一个带有变量的存储过程

mysql - Sql join 查询并多选择一列

PHP:生产服务器上的内存使用率非常高,而本地计算机上的内存使用率很低

php - 如何在我的 php、mysql 代码中放置边框和顺序

mysql - 一起使用 MySQL 和 Mongodb

php - 使用 IN 指令通过准备好的语句进行搜索

php - CakePHP 使用 JOIN 查找方法