|
Некорректная работа LEFT JOIN
|
|||
---|---|---|---|
#18+
Люди, подскажите пожалуйста, почему у меня в одном из множества аналогичных запросов функция LEFT JOIN почти в два раза уменьшает количество строк в новом файле по сравнению с тем, к которому шло прикрепление? Файл слишком большой, поэтому переслать не смогу. SELECT A.*, B.[КОЭФ] FROM K_rate_Krati AS A LEFT JOIN K_rate AS B ON (A.[НТД на техтребование (Код)]=B.[НД_ТЕХ_ТРЕБ]) AND (trim(A.[Ширина])<=B.[ШИРИНА_MAX]) AND (trim(A.[Ширина])>=B.[ШИРИНА_MIN]) AND (trim(A.[Толщина])<=B.[ТОЛЩ_MAX]) AND (trim(A.[Толщина])>=B.[ТОЛЩ_MIN]) AND (A.[Наименование марки]=B.[НАИМЕНОВАНИЕ_МАРКИ]) AND (A.[Код марки]=B.[КОД_МАРКИ]) AND (A.[НТД на профиль (Код)]=B.[НД_СОРТ]) AND (A.[Код вида продукции]=B.[Код вида продукции]) ORDER BY A.[ID]; Под спойлером текст запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2019, 18:18 |
|
Некорректная работа LEFT JOIN
|
|||
---|---|---|---|
#18+
british_whale, подозреваю, что не везде заполнены ширина/толщина или марка или сорт или вид надо смотреть таблицы Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2019, 19:54 |
|
Некорректная работа LEFT JOIN
|
|||
---|---|---|---|
#18+
Т.е. ваш запрос возвращает меньше записей, чем есть в таблице А? Вообще-то LEFT JOIN не любит связь по множеству полей, а тут еще >= и trim (кстати, вы пробовали без нее). Может JET и не справляется. А чем этот запрос отличается от работающих? Количеством исходных записей? Где используется запрос? LEFT JOIN обязательно? А что значит "уменьшает количество строк в новом файле "? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 11:11 |
|
Некорректная работа LEFT JOIN
|
|||
---|---|---|---|
#18+
Кривцов АнатолийВообще-то LEFT JOIN не любит связь по множеству полейОткуда такая информация? Кривцов АнатолийМожет JET и не справляется.Вам правда приходилось сталкиваться с тем, что Jet отдаёт результат выполнения запроса частично по причине "не справился"? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 11:38 |
|
Некорректная работа LEFT JOIN
|
|||
---|---|---|---|
#18+
british_whale , модифицируйте запрос в запрос на создание таблицы, и сохраните результат его работы в новой таблице. Получите запросом количество уникальных ID (в исходной K_rate_Krati это поле - уникальный индекс, верно?) для этой новой таблицы. Также получите запросом количество уникальных ID для исходной таблицы K_rate_Krati . Сравните полученные два числа - они просто обязаны совпадать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 11:42 |
|
Некорректная работа LEFT JOIN
|
|||
---|---|---|---|
#18+
british_whaleФайл слишком большой, поэтому переслать не смогу.по такому случаю можно сделать пример с двумя таблицами с представительным содержанием. Все связи построенные на неравенствах перенести в секцию WHERE. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 11:44 |
|
Некорректная работа LEFT JOIN
|
|||
---|---|---|---|
#18+
british_whaleФайл слишком большой, поэтому переслать не смогу.Если из БД удалить все ненужные для этого запроса объекты, базу сжать и заZIPовать - есть шанс уложиться в лимит 150 кб. Если нет - всегда можно выложить такой архив на какой-нить гуглодиск, дать к нему доступ, и опубликовать тут ссылку на файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 11:45 |
|
Некорректная работа LEFT JOIN
|
|||
---|---|---|---|
#18+
ПанургВсе связи построенные на неравенствах перенести в секцию WHERE.Это изменит логику запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 11:45 |
|
Некорректная работа LEFT JOIN
|
|||
---|---|---|---|
#18+
AkinaЭто изменит логику запроса.ну да, я уже понял. Не часто приходится делать такие запросы... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 11:50 |
|
Некорректная работа LEFT JOIN
|
|||
---|---|---|---|
#18+
AkinaЕсли нет - всегда можно выложить такой архив на какой-нить гуглодиск, дать к нему доступ, и опубликовать тут ссылку на файл.Посмотреть бы.... Может я чё не так понимаю,но из Вашего запроса я уяснил следующее:показать продукцию которая не укладывается в тех.условия по параметру(ам) для данного вида. Так или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 12:57 |
|
Некорректная работа LEFT JOIN
|
|||
---|---|---|---|
#18+
Съезд экстрасенсов объявляю открытым! Оставьте в left join свзяь по коду продукции(если я вообще хоть как то правильно понял запрос) все остальные фильтры перенесите в where в стиле (фильтры) OR B.[Код вида продукции] IS NULL ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 13:08 |
|
Некорректная работа LEFT JOIN
|
|||
---|---|---|---|
#18+
ОзверинСъезд экстрасенсов объявляю открытым! Оставьте в left join свзяь по коду продукции(если я вообще хоть как то правильно понял запрос) все остальные фильтры перенесите в where в стиле (фильтры) OR B.[Код вида продукции] IS NULL и потом уже шаманьте. Но понять, что не так без данных - невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 13:09 |
|
|
start [/forum/topic.php?fid=45&fpage=31&tid=1610643]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
100ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 353ms |
total: | 539ms |
0 / 0 |