我的查询需要一些帮助。
我需要选择未在另一个查询中选择的数据。
所以意思是:
表1有50个问题
表2选择了32
然后有18个未使用
我只需要选择18个未使用过的问题。
希望你能帮助我!
编辑:
表格包含所有问题:
Id - InputType - InputName - InputLabel
选定问题的表格:
Id - 必需 - 位置
关系:ID为Id
答案 0 :(得分:2)
您可以使用LEFT JOIN
:
SELECT T1.*
FROM Table1 T1 LEFT JOIN
Table2 T2 ON T1.Id=T2.Id
WHERE T2.required IS NULL
<强>解释强>
当我们将这些表与LEFT JOIN
连接时,它将选择Table1中的所有记录和Table2中的相应记录(如果有的话)。我们排除表2中已有的问题。
考虑表数据:
Table1 Table2
--------------------------------------------------
id Question id Question
1 Question1 1 Question1
2 Question2 3 Question3
3 Question3 5 Question5
4 Question4
5 Question5
6 Question6
然后这个查询将结果:
id Question
-----------------
2 Question2
4 Question4
6 Question6
答案 1 :(得分:1)
SELECT
aq.*
FROM
all_questions aq
LEFT JOIN selected_questions sq ON sq.Id = aq.Id
WHERE sq.Id IS NULL
答案 2 :(得分:0)
从您的陈述中,看起来使用的问题存储在另一个表Table2中。所以它就像是;
Select * From Table1 A
Left Join Table2 B On A.QuestionID = B.QuestionID
Where B.QuestionID is Null
答案 3 :(得分:0)
您可以使用Except
在第一张表中选择这些问题,但不在第二张表中选择
select QuiestionID from Questions
except
select QuiestionID from SelectedQuestions
答案 4 :(得分:0)
最后回答我用你所有的alswers。
SELECT fbb.*
FROM formbuildingblock fbb
LEFT JOIN formbbformtemplate fbbft
ON fbbft.formBuildingBlockId = fbb.formBuildingBlockId
WHERE fbbft.formBuildingBlockId IS NULL;