[英]MySQL - Inner join into same table with WHERE clause
我有一个名为Campaigns的MySQL表,如下所示
ID integer
Name text
isBalanced boolean
redirects tinyint
我想实现一个SELECT查询,使我得到的所有行,其中isBalanced
是假PLUS仅排在那里的限定数量的isBalanced
是真实的。 得到此结果后,我需要获得redirects
次数最少的一个。
我知道有很多方法可以做到,但是我很难弄清楚该怎么做。 这就是我直到知道
SELECT campaigns.id, campaigns.name, campaigns.isBalanced, campaigns.redirects
FROM campaigns AS c
INNER JOIN campaigns_2 AS c2
WHERE c.isBalanced = 0
但是,我无法从c2集中仅选择其中一些,然后将所有过滤器重新组合,以获得redirects
次数最少的单个过滤器。
任何帮助将不胜感激。
听起来您想要union all
合并,也许需要order by
和limit
合并:
select c.*
from campaigns c
where c.isBalanced = 0
union all
(select c.*
from campaigns c
where c.isBalanced = 1
limit ??
)
order by redirects
limit 1;
“定义的数字”在哪里??
是。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.