我一直在這個問題上停留了一段時間。首先,我要解釋一下表結構複雜邏輯的SQL查詢(pl/sql)
有在我的系統四個表
域
Columns: DomainID (primary key) DomainName Data: DomainID DomainName 1000 Google.com 2000 mySql.com
好康
Columns: WebpageID (primary key) WebpageName DomainID (FK from domain table) Data: 5001 SearchPage.html 1000 5002 Welcome.html 1000 5003 ContactUs.htm 1000 5004 AboutUs.html 1000
PluginType(PluginsType可添加到網頁) 該表列出了可爲每個域
Columns: PluginType (primary key) DomainID (primary key) PluginTypeName Data PluginTypeID DomainID PluginTypeName 8000 1000 searchButton 8001 1000 DropDownMenu 8002 1000 InteractiveForm 8003 1000 loginForm 8004 1000 LogoutForm
插件的插件類型:每個網頁的域名可以使用任何數量的插件。
Columns: PluginID (primary key) WebpageID (FK from webpage table) pluginTypeID (FK from plugintype table) Data: pluginID WebpageID(Name) PluginTypeID 10001 5001(SearchPage.html) 8000(SearchButton) 10002 5001(SearchPage.html) 8001(DropDownMenu) 10003 5002 (Welcome.html) 8000 (SearchButton) 10004 5002 (Welcome.html) 8001 (DropDownMenu) 10005 5002 (Welcome.html) 8004 (lotoutform) 10006 5003 (ContactUs.htm) 8003 (loginForm) 10007 5004 (AboutUs.htm) 8002 (loginForm)
現在我想給定一個域ID是什麼,我希望所有的網頁,插件列表可用,這樣該插件不超過一個網頁重複。 換句話說,每個插件的網頁插件組合,以這種方式插件不會在多個網頁中重複使用。
因此域1000(google.com)
我想要的結果是
5002 (Welcome.html) 8000 (SearchButton) 5002 (Welcome.html) 8001 (DropDownMenu) 5002 (Welcome.html) 8004 (lotoutform) 5003 (ContactUs.htm) 8003 (loginForm)
我只選擇了5002和5003的網頁,因爲他們包括所有的插件域名1000(google.com)。 還有一件事,最好是選擇一個只有一個插件的網頁。但我有興趣找到沒有這種偏好的解決方案,以後也許我可以改進解決方案。
你在尋找「DISTINCT」命令嗎? – Eugene 2011-01-20 14:55:37
具體爲什麼數據庫?語法不是100%相同 – 2011-01-20 16:40:54