Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос SQL / 20 сообщений из 20, страница 1 из 1
12.06.2015, 17:36:03
    #38983039
kerneldos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Имеется список женихов и список невест.
Каждая запись списка содержит пол, имя, возраст, рост, вес, а также требования к партнеру:
наименьший и наибольший возраст, наименьший и наибольший вес, наименьший и наибольший рост.
Объединить эти списки в список пар с учетом требований к партнерам без повторений женихов и невест.
...
Рейтинг: 0 / 0
12.06.2015, 18:46:39
    #38983061
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Это не для SQL задача. Да и критерий оптимума не сформулирован.
...
Рейтинг: 0 / 0
12.06.2015, 20:50:50
    #38983099
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Akina,

почему? Разве перечисление двух табличек через запятую не создаст такое множество?

Останется только наложить сверху набор условий... не? :)
...
Рейтинг: 0 / 0
12.06.2015, 23:52:38
    #38983147
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Arhat109, а на зачем ему картезианка?
Что же до набора условий - его тупо нет.
...
Рейтинг: 0 / 0
13.06.2015, 02:07:54
    #38983159
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
> Akina,
> Что же до набора условий - его тупо нет.

Есть условия

> kerneldos
> ... а также требования к партнеру:наименьший и наибольший возраст, наименьший и наибольший вес, наименьший и наибольший рост.
> Объединить эти списки в список пар с учетом требований к партнерам ...
...
Рейтинг: 0 / 0
13.06.2015, 02:16:52
    #38983160
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
kerneldos,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
/* женихи по критериям невест */
select ... 
from жених, невеста
where 
    жених.возраст between невеста.наименьший_возраст and  невеста.наибольший_возраст and
    жених.рост between невеста.наименьший_рост and  невеста.наибольший_рост and
    жених.вес between невеста.наименьший_вес and  невеста.наибольший_вес

union 
/* аналогично невесты по критериям женихов */
...
;
...
Рейтинг: 0 / 0
13.06.2015, 12:55:55
    #38983223
kerneldos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
скукотища,

> без повторений женихов и невест

При вашем запросе повторения присутствуют
...
Рейтинг: 0 / 0
13.06.2015, 15:53:18
    #38983254
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
скукотища, эти условия позволяют сформировать ОДНУ пару. А надо добавить условия, позволяющие формировать ВСЕ. Неповторение - условие необходимое, но не достаточное.
...
Рейтинг: 0 / 0
14.06.2015, 01:00:11
    #38983367
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
kerneldosскукотища,

> без повторений женихов и невест

При вашем запросе повторения присутствуютОй. Тестовые данные есть ?
...
Рейтинг: 0 / 0
15.06.2015, 17:53:17
    #38984159
kerneldos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
скукотища,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
/* женихи по критериям невест */
select ... 
from жених, невеста
where 
    жених.возраст between невеста.наименьший_возраст and  невеста.наибольший_возраст and
    жених.рост between невеста.наименьший_рост and  невеста.наибольший_рост and
    жених.вес between невеста.наименьший_вес and  невеста.наибольший_вес

AND 

    невеста.возраст between жених.наименьший_возраст and  жених.наибольший_возраст and
    невеста.рост between жених.наименьший_рост and  жених.наибольший_рост and
    невеста.вес between жених.наименьший_вес and  жених.наибольший_вес
...
;



Опять же, может совпасть 2 и более пары. Т.е жених1-невеста1, жених1-невеста2.
...
Рейтинг: 0 / 0
15.06.2015, 18:07:07
    #38984172
kerneldos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Тестовые данные:




...
Рейтинг: 0 / 0
15.06.2015, 18:08:59
    #38984175
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
kerneldosТестовые данные:
По фотографиям не лечим.
Тестовые данные принято давать в виде проверенных SQL-скриптов создания и наполнения таблиц.
...
Рейтинг: 0 / 0
15.06.2015, 18:11:58
    #38984178
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
kerneldosскукотища,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
/* женихи по критериям невест */
select ... 
from жених, невеста
where 
    жених.возраст between невеста.наименьший_возраст and  невеста.наибольший_возраст and
    жених.рост between невеста.наименьший_рост and  невеста.наибольший_рост and
    жених.вес between невеста.наименьший_вес and  невеста.наибольший_вес

AND 

    невеста.возраст between жених.наименьший_возраст and  жених.наибольший_возраст and
    невеста.рост between жених.наименьший_рост and  жених.наибольший_рост and
    невеста.вес between жених.наименьший_вес and  жених.наибольший_вес
...
;




Опять же, может совпасть 2 и более пары. Т.е жених1-невеста1, жених1-невеста2.Основа запроса есть. Теперь осталось конкретно сформулировать требование "без повторений".
Собственно, "без повторений пар жених-невеста" уже выполняется с точностью до дублей в исходных таблицах.
...
Рейтинг: 0 / 0
15.06.2015, 18:22:09
    #38984185
kerneldos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
miksoft,

Всё верно, с условия я думаю нужно подобрать для одного жениха одну невесту, т.е. если пара совпала следующие совпадение отсеивывается.
...
Рейтинг: 0 / 0
15.06.2015, 18:23:20
    #38984187
kerneldos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
следующее совпадение для жениха или невесты
...
Рейтинг: 0 / 0
15.06.2015, 18:23:21
    #38984188
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
kerneldosнужно подобрать для одного жениха одну невестуКакую именно невесту? Случайную?
...
Рейтинг: 0 / 0
15.06.2015, 18:31:58
    #38984192
kerneldos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
miksoft,

Результат выполнения текущего запроса:
...
Рейтинг: 0 / 0
15.06.2015, 18:47:44
    #38984207
kerneldos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
Т.е. совпало 2-е пары но жених повторяется. Или все же условие это допускает?
...
Рейтинг: 0 / 0
15.06.2015, 19:17:51
    #38984222
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
kerneldosИли все же условие это допускает?А вот это мы от ВАС хотим услышать.

Одно дело для каждого жениха вывести список "подходящих" ему невест (и наоборот) - это задача вполне себе для SQL.

И совсем другое дело - выдать некоторый набор пар без повторений.
Понятно, что в общем случае вариантов таких наборов хренова гора. Так вот - пока ВЫ не сформулируете чёткий критерий, по которому из всех таких возможных наборов следует выбрать только один (и не просто один, а "вот именно этот, и никакой другой"), разговор будет "ниачём".
...
Рейтинг: 0 / 0
15.06.2015, 19:34:40
    #38984236
kerneldos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос SQL
ОК. Всем большое спасибо. На том и сойдемся, что не поставленно четкое условие отсеивания повторений.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос SQL / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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