對於相當簡單的表結構,即。 Person,Criteria和Person Criteria (組合表),我已經設置了一個查詢來選擇所有擁有所有選定標準的人。高級(?)和/或查詢
本身看起來像這樣的時刻查詢:
SELECT
p.PersonID
FROM
Person p,
(SELECT DISTINCT PersonID, CriteriaID
FROM PersonCriteria
WHERE CriteriaID in (#list_of_ids#)
) k
WHERE
p.PersonID= k.PersonID
GROUP BY
p.PersonID
HAVING
Count(*) = #Listlength of list_of_ids#
到目前爲止,沒有任何問題,一切工作正常。
現在我想提供給用戶的可能性增加一些AND和OR變量在他們的搜索,即。有人可能會說:
我正在尋找的是擁有人:標準1和3和4 AND(5或6或7),(8或9(這將通過上面的查詢被覆蓋) )等等...
我不確定從哪裏開始增加這個級別。我希望別人做.. :-)
你的號碼「3」很好地訣竅。我必須添加不同的選擇,性能似乎並不太糟糕。 謝謝! – 2009-07-10 08:41:06
是的,我忘了DISTINCT部分。 :) – 2009-07-10 08:48:31