减去表seq和article。 seq表具有seq'3'的4条匹配记录,article表具有seqid'3'的3条匹配记录。我想从seq表中减去商品表(4-3 = 1)。输出仅返回一条记录。
SEQ
id seq
9 3
11 3
12 4
13 3
16 4
19 3
article
id seqid article
6 3 HR Skills
7 6 Finance
9 4 IT
12 3 HR Skills
15 3 HR Skills
SELECT s.id, s.seq, a.article
FROM seq s
INNER JOIN article a ON s.seq = a.seqid
WHERE s.seq NOT EXISTS (select seqid from article);
当我执行查询时,它从两个表中返回所有匹配的记录。我希望查询减去(4-3 = 1)。
输出:(4-3 = 1)
s.id s.seq a.seqid a.article
13 3 3 HR Skills
答案 0 :(得分:0)
如果仅此而已,您可以执行以下操作-
SELECT s.seq,
(COUNT(1) - (SELECT COUNT(1) FROM article WHERE seqid = s.seq) AS difference,
(SELECT article FROM article WHERE seqid = s.seq LIMIT 1) AS article
FROM seq s
GROUP BY s.seq
这样,您可以得到所有序列的差异
答案 1 :(得分:0)
查询:
select seqcnt.cnt ,articlecnt.cnt, isnull(seqcnt.cnt,0) - isnull(articlecnt.cnt,0) subtract , article. article
from
(select distinct seq , count(seq) cnt from seq group by seq ) seqcnt
left join (select distinct seqid , count(seqid) cnt from article group by seqid ) articlecnt on seqcnt.seq = articlecnt.seqid
left join (select distinct seqid , article from article) article on article. seqid = seqcnt.seq
输出