mysql - 从 JOIN 中加入 WHERE

标签 mysql sql join

我有多个表,其中包含一些客户端的数据。我想要实现的是输出某个客户在计费的第一个月的计费金额。

所以我运行类似于下面的代码:

SELECT company,clientid,COALESCE (signed.value,reactivated.value) as 'Activation' , Amount FROM `tblclients`
LEFT JOIN tblcustomfieldsvalues  as signed  ON tblclients.clientid = signed.relid and signed.fieldid = 5
LEFT JOIN tblcustomfieldsvalues  as reactivated ON tblclients.userid = reactivated.relid and reactivated.fieldid = 27
LEFT JOIN (
    SELECT clientid,sum(total) as Amount FROM tblinvoices  
    WHERE month(invoicedate)=month(Activation) Group by clientid) as f on tblclients.clientid = f.clientid 

我的问题是,当我执行最后一次连接时,它会出现错误:“where 子句”中的未知列“激活”。 如果我将其切换为 current_date,则查询的其余部分将起作用。

关于如何实现这项工作有什么想法吗?

后来编辑:我可能过于简化了查询,我还有一个 COALESCE

最佳答案

您可以尝试以下 -

SELECT company,clientid,activated.value as Activation , Amount 
FROM `tblclients`LEFT JOIN tblcustomfieldsvalues as signed ON tblclients.clientid = signed.relid and signed.fieldid = 5
LEFT JOIN 
( SELECT clientid,sum(total) as Amount 
  FROM tblinvoices Group by clientid
) as f on tblclients.clientid = f.clientid and month(invoicedate)=month(Activation)

关于mysql - 从 JOIN 中加入 WHERE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58080906/

相关文章:

sql - 选择$(美元符号)

sql - 如何使用 Postgres 添加指向 2 个表之一的外键?

sql - 在表格中找到相同地理点的最快方法是什么?

mysql索引列连接顺序

mysql - Eloquent 外键

java - Bluemix Liberty server.xml MySQL 数据源配置

php - 网页表单不发送输入到mysql数据库

使用 ignore_abort_user() 的 PHP 后台脚本不起作用

java - JPA 加入复合键的一部分

MySQL join 获取用户信息