powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Опять запросики
4 сообщений из 4, страница 1 из 1
Опять запросики
    #34622930
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вчера обсуждали стартовую версию запроса, где пропадала одна запись. После небольшой модификации всё пошло наоборот. Непонятно откуда появилась лишняя пустая запись. Вот запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT foo.field_id, SUM(ind_data.data)
FROM (SELECT Ind_fields.id AS field_id, Ind_fields.table_id, Ind_fields.field_name, Ind_fields.sel
 FROM ind_dep!ind_tables 
   INNER JOIN ind_dep!ind_fields 
   ON  Ind_tables.id = Ind_fields.table_id
 WHERE  Ind_tables.grp =  1 
   AND  Ind_tables.hall_id = :id) as foo
   left Join ind_data 
     on ind_data.field_id=foo.field_id AND ind_data.mode_id= 1 
   FULL JOIN ind_date
     ON ind_data.date_id=ind_date.id AND ind_date.rep_date>=:start_date AND ind_date.rep_date<=:end_date
Group By  foo.field_id
То что находится после двоеточий - параметры, например: :start_date это параметр.
А вот и сам результат запроса, верхняя сточка лишняя.
...
Рейтинг: 0 / 0
Опять запросики
    #34623136
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы представляете как работает FULL JOIN?

-) Отбираются записи по аналогии с INNER JOIN
-) К результату выборки добавляются записи, которые не удовлетворяют условию объединения по JOIN из "правой" таблицы
-) К результату выборки добавляются записи, которые не удовлетворяют условию объединения по JOIN из "левой" таблицы

Пустая строка на картинке - это действительно пустая строка или же там содержатся значения NULL? Если это значения NULL, то это и есть результат работы FULL JOIN

Я по прежнему не понимаю глубокого смысла использования FULL JOIN в данном запросе. С какой целью он был включен в данный запрос? Если нужен фильтр по дате, то почему FULL? Если его цель - это дополнительный фильтр по таблице ind_data прицепленной по LEFT, то и эта таблица должна цепляться по LEFT.

Может быть, Вам имеет смысл объединить таблицы ind_data и ind_date в отдельном подзапросе по INNER JOIN и результат этого подзапроса цеплять по LEFT JOIN к подзапросу too?

Хотя, и сам подзапрос по too особого смысла не имеет. Здесь вполне можно было бы раскрыть скобки.
...
Рейтинг: 0 / 0
Опять запросики
    #34623153
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это полностью пустая строка. Значений NULL я не видел. Она появляется только тогда, когда делаешь Group By.
...
Рейтинг: 0 / 0
Опять запросики
    #34623194
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Spasibo chto na Full Join obratili moje vnimanije. Zamenil na Left Join, rabotajet kak chasiki :)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Опять запросики
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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