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

标签 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

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

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

因此,如果 ABC1 在 TableB 中出现 5 次,并且 TableA.NumberOfScreens of ABC1 = 5,我不希望它出现在我的 SELECT 中。 如果 ABC3 在 TableB 中出现 3 次,并且 TableA.ABC3 的 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/

相关文章:

javascript - 连接 React 前端时出现网络错误

java - 使用 Hibernate Schema Updater 创建表时出错

mysql - 将查询结果插入到 MySQL 表中的一个字段中,并将 SQL 函数返回的值插入到其他字段中

sql - mysql:搜索存储为 varchar 的 BETWEEN 日期

java - MySQL - 对象不为空?

sql - 通过子查询更新,如果子查询没有返回行怎么办?

php - 一组 2 个用户的 SQL 查询

python - 有效地比较数据库行值

php - cakephp 3 在子关联表中使用包含

mysql - SQL - 选择在特定日期只购买了一种产品的客户