我正在尝试根据一组testID
来选择tagID
。我想选择所有使用一组标签中的所有标签标记的测试。
例如,如果我希望所有testID
标记为tagFK 1 and 2
,我希望只返回testID = 7
。
如果我希望testID
标记为tagFK = 2
,我希望能够返回testID 7 and 8
。
测试表
+--------+--------+
| testID | name |
+--------+--------+
| 6 | string |
+--------+--------+
| 7 | string |
+--------+--------+
| 8 | string |
+--------+--------+
| 9 | string |
+--------+--------+
junc_test_tag表
+--------+-------+
| testFK | tagFK |
+--------+-------+
| 7 | 1 |
+--------+-------+
| 7 | 2 |
+--------+-------+
| 8 | 2 |
+--------+-------+
| 8 | 3 |
+--------+-------+
| 9 | 3 |
+--------+-------+
| 9 | 4 |
+--------+-------+
我尝试了什么:
SELECT testID
FROM test
RIGHT JOIN junc_test_tag ON test.testID = junc_test_tag.testFK
WHERE junc_test_tag.tagFK = 1
OR junc_test_tag.tagFK = 2;
此查询返回重复项和不相关的行。我希望SQL结果只是相关的行。在这种情况下,只需从测试表中排第7行。
如何构建查询以实现我正在寻找的结果?