Форум программистов, компьютерный форум, киберфорум
Firebird/InterBase
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
10 / 10 / 6
Регистрация: 14.03.2011
Сообщений: 392

Составление запроса

01.06.2017, 15:46. Показов 1507. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день уважаемые форумчане.

Имеется таблица, в ней два поля и записи такого вида:
SQL
1
2
3
4
5
3 0
2 0
1 0
4 3
5 2
Каким запросом можно получить результаты вида: (3, 4) или (2, 5) или (1) из первой колонки и возможно ли такое вообще только имея такие данные...
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.06.2017, 15:46
Ответы с готовыми решениями:

Составление запроса
Здравствуйте. С удовольствием бы разобрался сам, но с БД только начинаю дружить, а срочно надо получить данные. Есть БД, в которой...

Составление запроса
Есть таблица Users, а в ней есть колонка Ref, куда записывается ID пользователя, который пригласил этого пользователя. Необходимо посчитать...

Составление простых запросов
Суть темы - наконец то решил более менее научится составлять запросы к бд и понял что у меня дела обстоят очень плохо. Хотелось бы...

21
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
01.06.2017, 15:55
А каким образом вы получили (3, 4) или (2, 5) или (1), а не (3, 5) или (2, 4) или (1, 1)? каким образом вы собирали пары? И почему (1) без пары? Что значит или в вашем случае?
0
10 / 10 / 6
Регистрация: 14.03.2011
Сообщений: 392
01.06.2017, 16:06  [ТС]
3,4 это 0,3 из второй колонки, 2,5 это 0,2 из вотрой, ну и 1 это 0

Еще может быть такая структура:
SQL
1
2
3
2 0
3 2
1 2
Тут надо получить 2,3,1
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
01.06.2017, 16:12
почему из второй колонки сложились (0,3) (0,2) и (0) ? А не (0, 0) (0, 3) и (2) ?
0
10 / 10 / 6
Регистрация: 14.03.2011
Сообщений: 392
01.06.2017, 16:13  [ТС]
Такой алгоритм , 2 это 0, а 3 это 2 и 1 это 2
SQL
1
2
3
2 0
3 2
1 2
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
01.06.2017, 16:17
алгоритм и нужно переложить на язык SQL, если хотите чего-то получить запросом.

и как этот алгоритм для трех нулей во втором столбце нашел именно такое сочетание из первого столбца?
0
10 / 10 / 6
Регистрация: 14.03.2011
Сообщений: 392
01.06.2017, 16:23  [ТС]
Как это сделать я не знаю, в теории нужно найти запись в первой колонке которая равна 0 во второй, потом найти все записи в первой колонке которые равны первой выборке
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
01.06.2017, 16:27
Лучший ответ Сообщение было отмечено Critically как решение

Решение

вот так бы сразу и написали рядом с цифрами

SQL
1
2
3
4
5
6
SELECT t1.F1, t2.F1
FROM 
  Tbl t1
  LEFT JOIN Tbl t2 ON t2.F2 = t1.F1
WHERE
  t1.F2 = 0
1
10 / 10 / 6
Регистрация: 14.03.2011
Сообщений: 392
01.06.2017, 16:33  [ТС]
А что такое t1 и t2 ?
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
01.06.2017, 16:39
алиасы таблицы Tbl.
когда таблица используется несколько раз (а у нас Tbl LEFT JOIN Tbl) то без них не обойтись, чтобы указать точно левую или правую Tbl мы используем

Добавлено через 2 минуты
левую назвали t1 и отобрали в ней те записи у которых второе поле (F2) нулевое
правую назвали t2 и соединили с левой так, чтобы F1 левой таблицы равнялся F2 правой
0
10 / 10 / 6
Регистрация: 14.03.2011
Сообщений: 392
01.06.2017, 16:39  [ТС]
А можно пожалуйста запрос написать для даунов ? ) Таблица: zakaz, Столбцы: nomer, vremya
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
01.06.2017, 16:42
и как в вашем алгоритме время может быть нулевым, и как по отобранным номерам с нулевым временем найти новое время, равное этому номеру???
0
10 / 10 / 6
Регистрация: 14.03.2011
Сообщений: 392
01.06.2017, 16:42  [ТС]
Я от балды написал названия ))
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
01.06.2017, 16:48
тогда пользуйтесь моими F1 и F2, я их тоже от балды написал
1
10 / 10 / 6
Регистрация: 14.03.2011
Сообщений: 392
02.06.2017, 11:56  [ТС]
Скажите пожалуйста, а если алгоритм будет более сложный вида:

SQL
1
2
3
3 0
2 3
1 2
Нужно получить все элементы у которых = 0 и все его дочерние элементы.
Тоесть 3 это 0, 2 это 3, а 1 в свою очередь это 2

Тоесть по факту мне нужно получить
SQL
1
2
3 2
2 1
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
02.06.2017, 13:51
Цитата Сообщение от Critically Посмотреть сообщение
Тоесть 3 это 0, 2 это 3, а 1 в свою очередь это 2
алгоритма так и не понял.
Цитата Сообщение от Critically Посмотреть сообщение
Тоесть по факту мне нужно получить
у вас это уже было, вы просто поменяли местами столбцы и выкинули запись с F2 = 0

вы бы поменьше абстракциями пользовались, чтоб бы было понятнее, что у вас есть и сто вы хотите
0
10 / 10 / 6
Регистрация: 14.03.2011
Сообщений: 392
02.06.2017, 14:10  [ТС]
3 это 0, тоесть 3 это основа, в эту основу входит 2, а 1 в свою очередь принадлежит 2, как то так понятнее ? )
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
02.06.2017, 14:13
у вас исходный набор такой и есть. Что вы с ним сделать хотите, почему остаются 2 записи, если вас интересуют три?

Добавлено через 55 секунд
т.е. вас не интересуют те, в кого кто-то уже не входит?
0
10 / 10 / 6
Регистрация: 14.03.2011
Сообщений: 392
02.06.2017, 14:13  [ТС]
SQL
1
2
3
4
5
6
7
8
9
 3 0 
 2 3
 1 2
 9 1
 4 0
 5 4
 7 0
 8 7
 6 7
Надо получить 3,2,1,9; 4,5; 7,8,6 есть подозрение что такое вообще нельзя получить используя только запрос
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
02.06.2017, 14:44
Цитата Сообщение от Critically Посмотреть сообщение
Надо получить 3,2,1,9; 4,5; 7,8,6
запрос не может в первой строке вернуть 4 столбца, во второй - 2, а в третьей - 3
если вас устроит
3 2 1 9
4 5 NULL NULL
7 8 6 NULL
и уровень вложенности ограничен и небольшой, то удлините запрос
SQL
1
2
3
4
5
6
7
8
SELECT t1.F1, t2.F1, t3.F1, t4.F1
FROM 
  Tbl t1
  LEFT JOIN Tbl t2 ON t2.F2 = t1.F1
  LEFT JOIN Tbl t3 ON t3.F2 = t2.F1
  LEFT JOIN Tbl t4 ON t4.F2 = t3.F1
WHERE
  t1.F2 = 0
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.06.2017, 14:44
Помогаю со студенческими работами здесь

Составление запроса к БД
Что-то никак разобраться не могу. Помогите пожалуйста. Есть БД, в ней таблица под названием "pro_user", в ней есть ячейки с...

Составление запроса
Друзья прошу помощи у знатоков, составил базу данных "Управление персоналом" , так вот ломаю голову как составить запрос...

Составление запроса
Таблица Users: ID | Login | Ref ------------------ 1 | User1 | 0 2 | User2 | 1 3 | User3 | 2 4 | User4 | 1 5 |...

Составление запроса
Итак. Есть 2 таблицы: Users(ID, Login, Pass, Ref) и CartHistory(ID, Login, Amount, Product). В Users есть столбец Ref, в который заносится...

Составление запроса
Есть таблица Stats с колонками id, date, sum. Нужно сделать вот как: Объединить sum, где date одинаковое. Т.е. есть 3 записи: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru