Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите сделать выборку / 7 сообщений из 7, страница 1 из 1
30.09.2004, 07:15:15
    #32717920
JamesBean
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать выборку
Добрый день!
Подскажите, пожалуйста, как построить запрос по следующему условию:
1. Есть набор множеств, в которых содержатся элементы.
2. Нужно найти такое множество, в котором содержатся все элементы хотя бы одного другого множества.
Например, есть множества А, Б, В, Г, состоящие, соответственно, из элементов {а1}, {а2}, {а3}, {а3, а4}. В данном случае как сделать выборку, чтобы показать, что под условия 1, 2 попадает множество Г.
...
Рейтинг: 0 / 0
03.10.2004, 17:16:04
    #32721356
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать выборку
Код: plaintext
SELECT B.value, A.value FROM B LEFT OUTER JOIN A ON B.value=A.value
если во втором столбце ответа есть NULL, то множество B не является подмножеством A.
Код: plaintext
1.
2.
3.
SELECT A.value, B.value, C.value, D.value FROM A
LEFT OUTER JOIN B ON A.value=B.value
LEFT OUTER JOIN C ON A.value=C.value
LEFT OUTER JOIN D ON A.value=D.value
- проверка, является ли A подмножеством B,C или D. Если является, то в соответствующем столбике не будет NULLов.
ma X mo
...
Рейтинг: 0 / 0
12.09.2005, 17:27:52
    #33264772
xax_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать выборку
Ну что, получилась 75 задача?
...
Рейтинг: 0 / 0
12.09.2005, 17:51:47
    #33264827
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать выборку
xax_nvНу что, получилась 75 задача?
Гы-гы..;))))))))))
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
12.09.2005, 17:53:02
    #33264831
xax_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать выборку
Я на полном серьезе...
...
Рейтинг: 0 / 0
13.09.2005, 03:21:10
    #33265280
max(id)
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать выборку
Если в вашем случае понятия множество и элементы множества эквивалентны понятиям таблица и строка таблицы, то попытаюсь предложить решение :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
select T1.tbl, 
       T2.tbl, 
       select if(count(M.*)= 0 ,'Yes','No') is_inc
       from ( select id 
              from  
                ( select 'A' as tbl, A.id as id from A
                    union all
                  select 'B' as tbl, B.id as id from B
                    union all
                  select 'C' as tbl, C.id as id from C
                    union all
                  select 'D' as tbl, D.id as id from D
                ) as U1
              where F.tbl = T1.tbl,
                minus
              select id 
              from  
                ( select 'A' as tbl, A.id as id from A
                    union all
                  select 'B' as tbl, B.id as id from B
                    union all
                  select 'C' as tbl, C.id as id from C
                    union all
                  select 'D' as tbl, D.id as id from D
                ) as U2
              where F.tbl = T2.tbl
            ) M
( select 'A' as tbl
    union all
  select 'B'
    union all
  select 'C'
    union all
  select 'D'
) as T1,
( select 'A' as tbl
    union all
  select 'B'
    union all
  select 'C'
    union all
  select 'D'
) as T2
Стоит учесть что решение расчитано на фиксированое количество множеств.
Если не требуется решение одним SQL запросом, то все можно переписать с использованием временных таблиц и т.д.
P.S. возможно не самое оптимальное из решений, просто первое что на ум пришло...
...
Рейтинг: 0 / 0
13.09.2005, 03:31:26
    #33265282
max(id)
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите сделать выборку
Вот незадача: в MySQL нет minus. Так что мое предыдущее решение не подходит... Приношу свои извинения
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите сделать выборку / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]