我是这个论坛和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


我现在的问题是计算TableB中同名的数量和(这就是我的想法)

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


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

谁能帮我?

谢谢 :)

最佳答案

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

关于mysql - 使用SQL选择与其他表值匹配的计数值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33798528/

10-10 12:40