Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
24.12.2018, 14:16
|
|||
|---|---|---|---|
Запрос с left join |
|||
|
#18+
Добрый день. Помогите, пожалуйста, с запросом. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. Первый запрос выдает все дома по указанным фильтрам. Второй выдает локальные идентификаторы только по тем домам, которые были выгружены во внешние системы. Мне в итоге нужна одна таблица, чтобы локальные идентификаторы подтягивались по записям первого запроса (если локального идентификатора нет, то значение должно быть пустым). Left Join почему-то не работает. Подскажите, пожалуйста, как правильно составить запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.12.2018, 14:43
|
|||
|---|---|---|---|
Запрос с left join |
|||
|
#18+
*Ann*, не проверял Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.12.2018, 04:02
|
|||
|---|---|---|---|
Запрос с left join |
|||
|
#18+
iiyama, спасибо за ответ. Но не помогло :) слишком много каких-то непонятных записей выводится, не удовлетворяющих фильтрам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.12.2018, 04:45
|
|||
|---|---|---|---|
Запрос с left join |
|||
|
#18+
Если в первый запрос вставить подзапрос, то записей выдается верное количество, но поле House_id пустое: select -- выгрузка без связи с локальным идентификатором ph.orponid as "GlobalID" , (select sys.external_id from ent_id_vs_o_add sys where id = sys.house_id and sys.system_id = 354541532) as "House_id" .... Подскажите, пожалуйста, где ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.12.2018, 05:10
|
|||
|---|---|---|---|
Запрос с left join |
|||
|
#18+
Все, разобралась. В подзапросе кое-что неправильно написала. Всем спасибо за участие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.12.2018, 05:39
|
|||
|---|---|---|---|
Запрос с left join |
|||
|
#18+
Не, не разобралась :( С подзапросом работает только на ограниченном количестве записей. Если не ограничивать количество, то ошибка о том, что подзапрос вернул больше чем одну запись... Может кто-нибудь подсказать как правильно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.12.2018, 07:07
|
|||
|---|---|---|---|
|
|||
Запрос с left join |
|||
|
#18+
Вот смотрю я на это все и думаю... А отвернусь и все - мысль ушла. ©ФД Что то подтягивается на локальных идентификаторах значения, которое должно быть пустым. Много непонятных записей. Попробуйте более четко сформулировать что у вас происходит и что вы хотите получить, и, я уверен, сразу поймёте как это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.12.2018, 08:59
|
|||
|---|---|---|---|
Запрос с left join |
|||
|
#18+
PizzaPizza, Есть таблица с адресами и есть таблица с ID из внешних систем, в которые этот адрес экспортировался. Как оказалось один адрес может быть экспортировать в одну внешнюю систему несколько раз с разными ID. Мне нужно получить список адресов и ID определённой внешней системы. Если адрес экспортировался в эту систему несколько раз, то записей с этим адресом должно быть несколько, если ни разу, то запись должна быть одна со значением null вместо идентификатора,если адрес выгружался в другую систему (не ту, которая нас интересует), то тоже строка с адресом в выгрузке должна присутствовать со значением null вместо идентификатора. Пока ничего хорошего не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.12.2018, 09:36
|
|||
|---|---|---|---|
|
|||
Запрос с left join |
|||
|
#18+
*Ann*Как оказалось один адрес может быть экспортировать в одну внешнюю систему несколько раз с разными ID. Ну у вас же есть ключ, по которому можно соединить запись базы из которой экспортировали и базы в которую экспортировали? *Ann* Мне нужно получить список адресов и ID определённой внешней системы ... записей с этим адресом должно быть несколько *Ann* если адрес выгружался в другую систему , то тоже строка с адресом в выгрузке должна присутствовать То есть вам нужно получить полную выборку всех адресов. К которому сделать джойн (left) выборки из одной "внешней системы" по их общему ключу (условие 1) Все, что будет без джойна будет присутствовать в выборке (условие 2) *Ann* если ни разу, то запись должна быть одна со значением null вместо идентификатора ,если адрес выгружался в другую систему (не ту, которая нас интересует), то тоже строка с адресом в выгрузке должна присутствовать со значением null вместо идентификатора . Тут нужно уточнение: вам не нужно отличать записи из "определенной системы", которые не были экспортированы и записи, которые были экспортированы, но в другие системы; или же если запись не была экспортирована в другие системы то она не должна появляться в списке вообще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.12.2018, 09:56
|
|||
|---|---|---|---|
Запрос с left join |
|||
|
#18+
PizzaPizza, На примере попробую объяснить: Таблица адресов содержит значения: Адрес1, Адрес2, Адрес3, Адрес4 Есть три внешние системы: С1, С2, С3 В таблице связей могут быть следующие значения: Адрес Система Идентификатор в этой системе Адрес1 С1 1111 Адрес1 С2 1222 Адрес1 С3 1333 Адрес2 С2 2222 Адрес3 С3 3222 Адрес3 С1 3111 Адрес3 С1 3112 Мне нужно выбрать идентификаторы системы С1, если их нет, то просто должна быть строка с Адресом, либо если идентификатора 2 или больше то строк с адресом должно быть столько же. Адрес1 С1 1111 Адрес2 null null Адрес3 С1 3112 Адрес3 С1 3111 Адрес4 null null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.12.2018, 10:03
|
|||
|---|---|---|---|
Запрос с left join |
|||
|
#18+
Попробовала вот так: with AllData as ( select ph.orponid as GlobalID , sys.external_id as "HouseID" , sys.system_id as SystemID , fil.name as "Филиал" , ph.adr_adm_ter as "Адрес" , eon.placecnt as "Квартир/офисов" , eon.kol_pod as "Количество подъездов" , eon.maxfloors as "Этажность" , (case when eon.areatype = 0 then 'Частный' when eon.areatype = 1 then 'Не частный' end) as "Тип сектора" from ent_as_house ph left JOIN ENT_OBJECT_NED eon on ph.ob_ned_id = eon.id left JOIN ENT_r_rtk fil on fil.id = ph.r_rtk_id left JOIN ent_id_vs_o_add sys on ph.id = sys.house_id where 1=1 and ph.livestatus = 1 and ph.mrf_id = 354 --Сибирь and ph.parent_id is not null order by ph.orponid ) select * from AllData where systemid = 35454 or systemid is null order by GlobalID 1. Этот запрос выдает адреса, которые не экспортировались ни в одну систему, и те, которые экспортировались. 2. Но если в нужной системе два идентификатора, то выдается только один из них. 3. Если адрес экспортировался в системы, отличные от заданной в where, то этот адрес не выдается совсем. Мне второй и третий пункт надо как-то исправить. Пока не придумалось как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.12.2018, 10:27
|
|||
|---|---|---|---|
|
|||
Запрос с left join |
|||
|
#18+
Если по вашему примеру. Есть две таблицы: таблица адресов АдресАдрес 1Адрес 2Адрес n и таблица связей Адрес система внешний айдиАдрес 1 система n айдиАдрес 2 система n айдиАдрес n система n айди Связаны они между собой только по полю Адрес. Выбираете все из таблицы адресов и по полю Адрес left join таблицу связей с условием поле система = чему то (например on таблица1.Адрес = таблица2. Адрес and таблица 2.система=с1. Получаете именно то, что вы хотите. Но честно говоря, эта модель с кодом, который вы показываете никак не сходится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.12.2018, 10:37
|
|||
|---|---|---|---|
|
|||
Запрос с left join |
|||
|
#18+
Если убрать лишнее, то можно начать с Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1688533]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 411ms |

| 0 / 0 |
