Я застрял в этой проблеме некоторое время. Сначала я объясню структуру таблицыSQL Query (pl/sql) для сложной логики
Есть четыре таблицы в моей системе
домена
Columns: DomainID (primary key) DomainName Data: DomainID DomainName 1000 Google.com 2000 mySql.com
WebPage
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
Plugin: Каждый веб-страницы в домене может использовать любое количество плагинов.
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)
Теперь то, что я хочу это, учитывая идентификатор домена, я хочу, чтобы список всех веб-страниц-плагин доступен, таким образом, что плагин не повторяется в более чем одной веб-странице. Поставить другим способом, комбинацию веб-страниц для каждого плагина, таким образом, чтобы плагин не повторялся более чем на одной веб-странице.
Таким образом, для домена 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
Для какой базы данных конкретно?Синтаксис не на 100% тот же –