操作数应该包含1列 – MySQL不在IN中

SELECT * from campaigns WHERE id not in (SELECT e.id_campaign, d.name, d.frequency, d.country, d.referral, d.bid, d.status, COUNT(e.id) AS countcap FROM campaigns d LEFT JOIN served e ON d.id = e.id_campaign WHERE d.status = 'Active' GROUP BY e.id_campaign HAVING countcap < d.frequency) 

我得到的错误“操作数应该包含1列” – 但我需要COUNT(e.id)

总是有这样的:

 select * from campaigns where id not in ( select id_campaign from ( select e.id_campaign as id_campaign, d.frequency, e.id from campaigns d left join served e on d.id = e.id_campaign where d.status = 'Active' group by e.id_campaign having count(e.id) < d.frequency ) ) 

“不在”子句期望值列表。 所以,像下面这样的查询将起作用:

 SELECT * from campaigns WHERE id not in (SELECT e.id_campaign FROM campaigns d LEFT JOIN served e ON d.id = e.id_campaign WHERE d.status = 'Active' GROUP BY e.id_campaign HAVING COUNT(e.id) < d.frequency) 

如果您可以告诉我们表格的结构和您想要select的内容,我们将能够为您找出正确的查询。