我有3個表格:關鍵詞,授權KeyConn,授權。它被設置的方式,每個「授予」具有相關聯的「關鍵詞」,其被存儲在關鍵字表作爲這樣:如何在C#中執行此MySQL查詢?
每個「關鍵字」關聯/連接到一個特定的「許可」在GrnatsKeyConn表作爲這樣:
...,使得多個「關鍵字」可以被關聯/連接到一個「許可」。最後,每個「授予」存儲在資助表這樣:
我想通過在文本框中指定的關鍵字來過濾掉補助。因此,假設我指定了關鍵字「test,new,final」......那麼結果將只篩選出與這些關鍵字相關聯的授權;它不必產生只有3個與它們相關的關鍵字的贈款;它可以導致具有1,2,3,...,所有指定關鍵字的贈款。 另外,如果一個資助有超過1個與其關聯的關鍵字,我不希望它在結果中顯示多次。
那麼我該如何做這個查詢?我不想從KeyWords表中選擇一個關鍵字的ID,然後使用該ID進入GrantsKeyConn表以獲取關聯的授權,然後轉到Grants表以提取正確的授權。如果是這樣,我將如何做到這一點?
讓我知道是否需要進一步澄清我的問題。
請檢查您選擇的答案,因爲這是一個比我的回答慢得多的交易。我真的認爲這是建議人們使用一種目的永遠不會實現的方法。 – Aidiakapi 2011-03-16 15:51:45
@Aidiakapi ...您的解決方案能夠返回不同的結果嗎?例如,如果某個授權與其關聯的關鍵字超過1個,我只希望該授權僅顯示一次,而不是一次顯示與其關聯的每個關鍵字。 「DISTINCT」主意在哪裏起作用? – Hristo 2011-03-16 16:09:41
'DISTINCT'總是出現在'SELECT'之後,就像另一個例子。 – Aidiakapi 2011-03-17 10:59:53