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

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

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

Есть условия

> kerneldos
> ... а также требования к партнеру:наименьший и наибольший возраст, наименьший и наибольший вес, наименьший и наибольший рост.
> Объединить эти списки в список пар с учетом требований к партнерам ...
...
Рейтинг: 0 / 0
Запрос SQL
    #38983160
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Запрос SQL
    #38983223
kerneldos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

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

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

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

При вашем запросе повторения присутствуютОй. Тестовые данные есть ?
...
Рейтинг: 0 / 0
Запрос SQL
    #38984159
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
Запрос SQL
    #38984172
kerneldos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тестовые данные:




...
Рейтинг: 0 / 0
Запрос SQL
    #38984175
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kerneldosТестовые данные:
По фотографиям не лечим.
Тестовые данные принято давать в виде проверенных SQL-скриптов создания и наполнения таблиц.
...
Рейтинг: 0 / 0
Запрос SQL
    #38984178
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Запрос SQL
    #38984185
kerneldos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

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

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

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

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


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