MySQL:对照第二张表中的值检查一张表中的列数

问题描述

这听起来与this post类似,但涉及的内容更多。我想做的是检查表1中的列条目数等于第2列中的存储值。

table1:
+------+--------------+
|  id  |  isComplete  |  VARCHAR,TINYINT
+------+--------------+
|  20  |  true        |
|  20  |  false       |
|  20  |  true        |
+------+--------------+

table2:
+------+--------------+
|  id  |  numJobs     |  VARCHAR,TINYINT
+------+--------------+
|  20  |  3           |
+------+--------------+

因此,这个想法基本上是检查isComplete === true(2)的数量是否等于numJobs(3)的值。

这是我的开始:

SELECT COUNT(*) FROM table1 WHERE id = 20
AND isComplete = true
AND LIKE (SELECT numJobs FROM table2 WHERE id = 20);

我所需要的只是对/错的返回,但是我被卡住了。有人可以指出我正确的方向吗?

解决方法

77.00true在数字上下文中充当false1。因此,您可以汇总0列并将其加入isComplete

table2
,

如果列isComplete的数据类型是BOOLEANINTEGER01),则需要检查列的总和:

SELECT SUM(t1.isComplete) = (SELECT t2.numJobs FROM table2 t2 WHERE t2.id = t1.id) result
FROM table1 t1
WHERE t1.id = 20

表达式:

SUM(t1.isComplete) = (SELECT t2.numJobs FROM table2 t2 WHERE t2.id = t1.id)

的值为01

请参见demo
您的样本数据的结果:

| result |
| ------ |
| 0      |

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...