|
SQL запрос из трех таблиц без повторов
|
|||
---|---|---|---|
#18+
Здравствуйте. Есть три таблицы вида с полями qselFoldersSyst: 1 fldrFolder qfltOutPostavshiki: 2 outFolder outSendDate qfltInPostavshiki: 3 inFolder inArrivalDate Есть запрос вида Код: sql 1. 2. 3. 4. 5.
Соответственно при таком запросе получается табличка вида fldrFolder outSendDate inArrivalDate 1032 19.03.2020 29.06.2020 1032 19.03.2020 11.08.2020 1032 19.03.2020 26.11.2020 1032 08.07.2020 29.06.2020 1032 08.07.2020 11.08.2020 1032 08.07.2020 26.11.2020 1032 31.08.2020 29.06.2020 1032 31.08.2020 11.08.2020 1032 31.08.2020 26.11.2020 а нужно в виде Код: sql 1. 2. 3.
Подскажите как правильно составить запрос ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2021, 17:19 |
|
SQL запрос из трех таблиц без повторов
|
|||
---|---|---|---|
#18+
mdli, А как эти таблички связаны?(ведь если в других таблицах ручками набирать [fldrFolder]-это верный путь к ошибкам,которые исключатся при связывании и запрос станет очень простым. По сути:есть такая функция FORMAT ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2021, 18:23 |
|
SQL запрос из трех таблиц без повторов
|
|||
---|---|---|---|
#18+
Пронумеровать записи в подчинённых таблицах, и при связывании также требовать равенства этого номера. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2021, 18:40 |
|
SQL запрос из трех таблиц без повторов
|
|||
---|---|---|---|
#18+
sdku, Таблички связаны INNER JOIN по полям qselFoldersSyst.fldrFolder = qfltOutPostavshiki.outFolder и qselFoldersSyst.fldrFolder = qfltInPostavshiki.inFolder На запятые не обращайте внимания, мне нужно 3 записи вместо 9 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2021, 18:59 |
|
SQL запрос из трех таблиц без повторов
|
|||
---|---|---|---|
#18+
Akina, Таблицы делал не я и я вообще не понимаю, как сделать правильный запрос. То есть нужно добавить связи главный-подчиненный между 1 и 2 и также между 2 и 3 таблицами ? С полями ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2021, 19:02 |
|
SQL запрос из трех таблиц без повторов
|
|||
---|---|---|---|
#18+
Akina, Я чего то жестко затупил от такой постановки задачи и думал что можно как то решить, и при этом совсем забыл как правильно делать базы данных ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2021, 19:11 |
|
SQL запрос из трех таблиц без повторов
|
|||
---|---|---|---|
#18+
mdli Я чего то жестко затупил от такой постановки задачи и думал что можно как то решить, и при этом совсем забыл как правильно делать базы данных ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2021, 21:43 |
|
SQL запрос из трех таблиц без повторов
|
|||
---|---|---|---|
#18+
Прощу пардону:неправильно Вас понял-сейчас перечитал. Вы хотите вывести для одинаковых дат в поле outSendDate максимальные даты в поле inArrivalDate-так? Гляньте это: ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2021, 02:08 |
|
SQL запрос из трех таблиц без повторов
|
|||
---|---|---|---|
#18+
sdku, не максимальные даты, а сделать outSendDate без дублей. в примере выводится минимальная дата, потом та что между мин и макс, потом максимальная. Вот как сделать чтобы в 3 столбце выводилось 3 строки и во 2 столбце тоже 3 ? И был полный перебор всех дат в обоих столбцах ? И должно получится 3 записи в этом примере, а может быть и 4 и 5 и больше. Я пока что нашел способ добавить поле в 3 таблицу и сделать зависимость между 1 и 2 а также между 2 и 3 таблицами, со связями. Но записей очень много порядка 10 000 и проставлять вручную номера в 3 таблицу будет трудно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2021, 03:02 |
|
SQL запрос из трех таблиц без повторов
|
|||
---|---|---|---|
#18+
sdku, Допустим можно найти минимальные и максимальные даты. Но как в таком случае найти даты между ними ? В примере будет 1 средняя строка, а ведь если записей 4 то будет 2 средние строки, 5 записей - будет 3 средние строки, а найти средние строки - это задача как найти все строки. Так что печалька. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2021, 03:14 |
|
SQL запрос из трех таблиц без повторов
|
|||
---|---|---|---|
#18+
mdli, если выкинуть из запроса fldrFolder, все связи, сгруппировать данные таблиц, отфильтровать по константе да отсортировать по возрастанию, то должно получится искомое. но для чего это недоразумение может пригодиться?хз ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2021, 10:19 |
|
SQL запрос из трех таблиц без повторов
|
|||
---|---|---|---|
#18+
mdli sdku, Допустим можно найти минимальные и максимальные даты. Но как в таком случае найти даты между ними ? В примере будет 1 средняя строка, а ведь если записей 4 то будет 2 средние строки, 5 записей - будет 3 средние строки, а найти средние строки - это задача как найти все строки. Так что печалька. alecko .....но для чего это недоразумение может пригодиться?хз ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2021, 11:58 |
|
|
start [/forum/topic.php?fid=45&fpage=10&tid=1609799]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 144ms |
0 / 0 |