我试图获取在合约表中出现多次的帐户,而不管它在c_map表中联接的次数。
CREATE TABLE cntrct (
cntrct_id VARCHAR(10),
account_id varchar(10)
);
CREATE TABLE c_map (
cntrct_id VARCHAR(10)
);
INSERT INTO cntrct VALUES (1,'a');
insert into cntrct values (2,'b');
insert into cntrct values (3,'c');
insert into cntrct values (4,'b');
INSERT INTO c_map VALUES (1);
INSERT INTO c_map VALUES (1);
INSERT INTO c_map VALUES (1);
insert into c_map values (2);
insert into c_map values (2);
insert into c_map values (2);
insert into c_map values (3);
insert into c_map values (3);
insert into c_map values (3);
commit;
select ct.account_id
from cntrct ct, c_map cm
where ct.cntrct_id = cm.cntrct_id
group by ct.account_id
having count(ct.account_id)> 1
小提琴:http://sqlfiddle.com/#!4/cec1b7/4
我期待输出:
b
但我却得到了他们所有人。
如何限制它,使它在运行having count()>1时不考虑c_map表?
1条答案
按热度按时间eeq64g8w1#
获取在合约表中出现多次的账户,而不管它在c_map表中联接的次数。
为什么要加入呢?您需要的信息在合同表中:
exists
: