|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.05.2016, 15:47 | #1 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
join таблиц
В БД есть две таблицы:
table1 t1 Код:
Код:
Вариант навскидку псевдокодом: Код:
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
24.05.2016, 16:30 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Так можно
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 24.05.2016 в 16:33. |
24.05.2016, 17:31 | #3 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Спасибо
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
01.06.2016, 08:13 | #4 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Подниму свою тему с новым вопросом.
Есть таблица. В ней есть столбец (field1), в котором могут быть значения "ААА", "BBB", "ССС" и т.д. в любом количестве и порядке. Также есть столбец (field2), в котором указан приоритет. Код:
Правило для выбора строки: если в field1 есть значения "ВВВ", то возвращается строка, содержащая в field1 значение "BBB" и обладающая максимальным приоритетом (field2). Если же значения "ВВВ" нет, то вернуть значения для строки, обладающей максимальным приоритетом. Т.е. в итоге мне нужно получить в качестве присоединяемой таблицу: Код:
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
01.06.2016, 09:38 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А в какую не ту? Не вижу. Для сиквела можно было бы примерно так. Естесно не проверял, без гарантий
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
01.06.2016, 10:05 | #6 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Пытался прикрутить join внутри case - не получилось.
Пытался прикрутить его же в if - не получилось. Пытался как-то фильтровать результаты через case - не получилось. Пытался пробовать distinct`ы, group by и прочее - не получилось. Т.е. понять, есть значение "BBB" в field1 или нет я смог, а вот применить это знание для фильтрации уже нет. Если я правильно понял логику, то в примере (с учетом опечаток) происходит так: 1. Выбираются максимальные значения поля field2 для field1 = "BBB" и вообще максимальное. 2. В результирующей таблице проверяется наличие записи с "ВВВ", если она есть - возвращается соответствующее значение, если нет - то возвращается значение для максимального field2 3. Также возвращаются field0 и максимальный field2 Интересный алгоритм, еще раз спасибо. Попробую применить.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
05.06.2016, 18:17 | #7 |
Пользователь
Регистрация: 01.03.2013
Сообщений: 22
|
1.а обязательно заталкивать всю логику в один селект?
2.ваш пример не соответствует описанной логике. Последний раз редактировалось varich; 05.06.2016 в 18:40. |
08.06.2016, 15:15 | #8 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Было крайне желательно, чтобы вся эта радость выполнялось одним запросом, т.к. результат этого SELECT`a джойнился еще к куче таблиц.
Она и выполнилась, спасибо Аватар`у с его алгоритмом выборки. А несоответствие примера - можете сказать, в чем конкретно?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Соединение 3-х таблиц оператором Join | Lokos | БД в Delphi | 2 | 08.04.2013 09:58 |
inner join/full join | SashkaSonin | БД в Delphi | 6 | 23.03.2012 17:13 |
Join(запрос) | clbman | SQL, базы данных | 8 | 14.06.2010 15:52 |
UNION JOIN | tools | SQL, базы данных | 0 | 05.06.2010 18:20 |
join | wall66 | SQL, базы данных | 2 | 10.11.2008 16:44 |