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