对于标题感到抱歉,我找不到我的问题的简称或描述。自定义MySql查询
表-A:每一行是一个用户请求(ID,...,状态)
表-B:在表-A每个请求可以具有在表-B 1个或更多的行作为用于请求子部分(ID,REQUEST_ID, ....,状态)
我的系统用cron处理Table_B中的行,同时运行多个cron。 cron在完成时将Table_B中的状态设置为3(完成)。
现在我需要知道每个请求(Table_A)的所有子节(Table_B行)何时完成,以便我可以更新Table_A中的状态。
我现在正在做的是在Table_A(TOP 1)中选择第一个请求,然后获取Table_B中所有子节点的状态,并检查它们是否都具有状态== 3,这有效,但我希望能够通过单个查询来完成此操作,而不需要检查代码中的值。
事情是这样的:
select the request_id's
from Table_B where **all the rows** with this request_id has status=3
任何想法?任何帮助表示赞赏。
tnx这似乎是工作,使用这样的查询会对性能有多大影响?考虑一个具有100,000行以上的表格 – Exlord
如果表格已正确编制索引,它应该执行OK。你可以用你的实际数据来尝试它,并告诉我们它的表现如何。或者,您可以尝试使用“NOT EXISTS”并查看它的比较结果。 –
'having'在我的小测试表中看起来要快得多,它花费了0.0005秒,其中'DREXIST'查询由@DRapp在同一张表上用子查询写入'0.0476秒'。但我认为我应该用更大的表格做另一项测试。 – Exlord