我需要限制 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/