使用SQL选择匹配计数值与其他表值

时间:2015-11-19 08:21:12

标签: mysql sql

我是这个论坛的新手,也是SQL的新手,需要在工作中快速查看。我搜索了这样的话题,但没有找到完全相同的问题......

我有2个表:TableA和TableB

表A

Name    NumberOfScreens
-----------------------
ABC1          5
ABC2          4
ABC3          7

表B

Name   Date   Duration
------------------------
ABC1    x        xxx
ABC1    x        xxx
ABC1    x        xxx
ABC3    x        xxx
ABC3    x        xxx

我现在的问题是计算表B中的相等名称数量(这就是我的想法)

Select(*) from TableB where Count(Name) <> TableA.NumberOfScreens

因此,如果ABC1在TableB中出现5次,而ABC1 = 5的TableA.NumberOfScreens,我不希望它出现在我的SELECT中。 如果ABC3在TableB中显示3次并且ABC3 = 5的TableA.NumberOfScreens,我需要它出现在我的SELECT中。

任何人都可以帮助我吗?

谢谢:)

1 个答案:

答案 0 :(得分:1)

select A.Name, A.NumberOfScreens 
from TableA A join TableB B
on A.Name = B.Name
group by A.Name,A.NumberOfScreens 
having count(*) = A.NumberOfScreens

编辑:

select tb.Name, tb.Date, tb.Duration 
from TableB tb join 
(
select A.Name tmpName, A.NumberOfScreens tmpNumberOfScreen
from TableA A join TableB B
on A.Name = B.Name
group by A.Name,A.NumberOfScreens 
having count(*) <> A.NumberOfScreens
) tmp
on tb.name = tmp.tmpName