我需要一些幫助來處理我的查詢。Mysql獲取尚未使用的行
我需要選擇未在另一個查詢中選擇的數據。
因此,什麼是均值爲:
表1有50個問題
表2已選擇32
再就是18不被使用。
我只需要選擇那18個未使用的問題。
希望你能幫助我!
編輯:
表的所有問題:
標識 - 的inputType - InputName - InputLabel
表與被選擇的問題:
編號 - 必要 - 位置
關係:標識與編號
我需要一些幫助來處理我的查詢。Mysql獲取尚未使用的行
我需要選擇未在另一個查詢中選擇的數據。
因此,什麼是均值爲:
表1有50個問題
表2已選擇32
再就是18不被使用。
我只需要選擇那18個未使用的問題。
希望你能幫助我!
編輯:
表的所有問題:
標識 - 的inputType - InputName - InputLabel
表與被選擇的問題:
編號 - 必要 - 位置
關係:標識與編號
您可以使用LEFT JOIN
:
SELECT T1.*
FROM Table1 T1 LEFT JOIN
Table2 T2 ON T1.Id=T2.Id
WHERE T2.required IS NULL
說明:
當我們加入與LEFT JOIN
這些表格,它將選擇從表1,從表2中的所有記錄和相應的記錄(如果有的話)。我們正在排除已經在表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個小問題。他現在只獲得了被選中的問題。所以我不得不打開它或類似的東西。 – 2015-03-02 10:34:31
@MathieuP:這是因爲你錯誤地放置了表名。只要改變它。表1應該是包含完整問題的表格。或者你可以使用'RIGHT JOIN'而不更改名稱。兩者都可以工作。 – 2015-03-02 10:36:27
Ehm ..它不適合我...我試過這個.. – 2015-03-02 10:39:42
從您的陳述中,它看起來像使用的問題存儲在另一個表格Table2。所以它會是這樣的;
Select * From Table1 A
Left Join Table2 B On A.QuestionID = B.QuestionID
Where B.QuestionID is Null
SELECT
aq.*
FROM
all_questions aq
LEFT JOIN selected_questions sq ON sq.Id = aq.Id
WHERE sq.Id IS NULL
您可以使用Except
選擇第一個表的問題,但不是在二表
select QuiestionID from Questions
except
select QuiestionID from SelectedQuestions
最終答案我用你所有的alswers做了什麼。
SELECT fbb.*
FROM formbuildingblock fbb
LEFT JOIN formbbformtemplate fbbft
ON fbbft.formBuildingBlockId = fbb.formBuildingBlockId
WHERE fbbft.formBuildingBlockId IS NULL;
什麼是您的表格結構? – 2015-03-02 10:13:49
表格之間的關係是什麼? – 2015-03-02 10:13:54
看看EXCEPT語句。可能是你在找什麼。 https://msdn.microsoft.com/en-us/library/ms188055.aspx – Veverke 2015-03-02 10:16:15