mysql - MySql 连接的限制

标签 mysql sql

我需要限制 mysql 查询中的连接,我正在使用下面的代码;

select customer.`name`, customer.`retainer_value`, updates.`date` 
from updates
  left join customer on customer.id = updates.`clientid`
WHERE customer.`retainer_value` < 250 
  AND customer.switchedoff = 'N' 
  AND customer.companyid <> 3 
  AND customer.retainer_value > 20 
group by updates.clientid 
order by updates.date DESC

我正在尝试从客户表中选择满足 where 条件的所有客户,并在更新表中保留加入该客户的最新更新。

有没有一种简单的方法可以做到这一点,或者我需要通过 PHP 来做到这一点?

最佳答案

首先,如果您想保留所有符合过滤器的客户,则需要按正确的顺序执行左连接。这意味着 customer 表应该位于左连接中的第一个。

然后,如果您只想要最近的日期,请使用 max():

select c.`name`, c.`retainer_value`, max(u.`date`)
from customer c left join
     updates u
     on c.id = u.`clientid`
WHERE c.`retainer_value` < 250 AND c.switchedoff = 'N' AND c.companyid <> 3 AND
      c.retainer_value > 20
group by c.id
order by max(u.`date`) DESC

关于mysql - MySql 连接的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20571197/

相关文章:

php - 存储过程在应用层获取数据需要时间

mysql - 在没有密码提示的情况下在 Ubuntu 上安装 MySQL

MySQL索引最佳性能

java.sql.SQLException : Closed Resultset: next on selecting item from ComboBox 异常

mysql - 获取每个组的最新记录,其中包含最新日期时间而不是ID - mysql

php - 将 SQL 结果分类并在表格 PhP 中显示

SQL 字符串格式化程序

c# - 使用 C# 或 SQL 从文本中提取关键字以进行 SEO

mysql - 如何正确构建这个查询?这是一个合适的 MySql 方案吗?

java - Android Studio - java.lang.IllegalStateException : Could not find button's onClick method