在关系数据库中选择On COUNT <x

sbe*_*rli 0 sql select relational-database

我有以下3个表格:

TestGroup
RecordNumber(pk)

Test
RecordNumber(pk)
TestGroupRecordNumber(fk)

结果
RecordNumber(pk)
TestRecordNumber(fk)

基本上,TestGroup是一组测试,每个测试都包含许多结果.我想选择结果少于X的所有TestGroup.什么查询将实现这一目标?

小智 6

你应该使用having子句:

SELECT count(1), tg.recordNumber FROM testgroup tg
LEFT JOIN test t ON t.TestGRoupRecordNumber = tg.recordNumber
LEFT JOIN result r ON r.testRecordNumber = t.recordNumber
GROUP by tg.recordNumber
HAVING count(1) < 10
Run Code Online (Sandbox Code Playgroud)