1
我有一個筆記和列表的數據庫,有三個關聯表。 基本上,列表是父母的筆記和其他列表,筆記可以是其他筆記的父母,如層次結構中的大綱。SQL有效地檢查一個關聯是否存在?
我正在使用此查詢來返回列表中的所有筆記以及每個筆記具有的子筆記的數量。
SELECT count(n2.note_id) as Num_Subnotes, _id, title, details
FROM NOTES
JOIN NOTES_IN_LISTS n1 ON NOTES._id=n1.note_id
LEFT JOIN NOTES_IN_NOTES n2 ON NOTES._id=n2.parent_note_id
WHERE n1.listId=12
GROUP BY NOTES._id
COLLATE NOCASE
這個查詢工作得很好,但它是過度的。我不需要返回count(n2.note_id) as Num_Subnotes
,因爲我只使用該值來檢查鈔票是否有任何子注。從本質上講,它是一個布爾值,其中0爲假,> 0爲真。
在我看來,計算所有這些記錄是浪費時間,當我找到第一個匹配值後可以返回1。
是否有更高效的方法來檢查上述查詢中的count(n2.note_id)>0
?