Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SQL запрос.
|
|||
|---|---|---|---|
|
#18+
Привет всем присутствующим . Прошу помочь в формировании запроса. Есть ситуация: таблица table1 code_doc code_rgn 0000000001 01 0000000002 02 0000000003 03 0000000004 01 0000000005 0000000006 01 0000000007 0000000008 03 ............................... таблица table2 code_rgn name_rgn abbr_rgn ..... 01 наименование 1 обозначение 1 02 наименование 2 обозначение 2 03 наименование 3 обозначение 3 ............................... Нужно получить следующий результат: code_doc code_rgn name_rgn 0000000001 01 наименование 1 0000000002 02 наименование 2 0000000003 03 наименование 3 0000000004 01 наименование 1 0000000005 0000000006 01 наименование 1 0000000007 0000000008 03 наименование 3 ............. Если делаю так: Код: plaintext 1. 2. 3. то соотвественно получаю следующий результат: Код: plaintext 1. 2. 3. 4. 5. 6. 7. т.е. записи с кодами 0000000005 и 0000000007 пропадают, так как значения из полей code_rgn для таких записей пустые..мне же надо их вытащить, но чтобы значения поля name_rgn оставалось незаполненным... Наверно, вопрос глупый, но вот что-то не нашел я простого решения без предварительной обработки.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 08:59 |
|
||
|
SQL запрос.
|
|||
|---|---|---|---|
|
#18+
SELECT TABLE1.CODE_DOC,TABLE1.CODE_RGN,TABLE2.NAME_RGN; FROM TABLE1; left join table2 on TABLE2.CODE_RGN=TABLE1.CODE_RGN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 09:12 |
|
||
|
SQL запрос.
|
|||
|---|---|---|---|
|
#18+
так просто?! Жаль, что нет здесь системы оценок, как на rsdn.ru (не реклама ;) ) Ща проверим. С уважением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 09:15 |
|
||
|
SQL запрос.
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ. Выражение правильно, ввод вручную возвращает нужный результат, но вот как сделать при помощи построителя представления? У меня получается выражение такого плана: Код: plaintext 1. 2. 3. как получить выражение table1 TABLE1 LEFT OUTER JOIN table2 TABLE2 вместо table2 TABLE2 LEFT OUTER JOIN table1 TABLE1 при помощи построителя, не пойму... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 09:55 |
|
||
|
SQL запрос.
|
|||
|---|---|---|---|
|
#18+
у построителя есть глюки... я им не пользуюсь... предпочитаю писать ручками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 10:07 |
|
||
|
SQL запрос.
|
|||
|---|---|---|---|
|
#18+
учту....просто хотелось, чтобы оставалась возможность работать с базой данных через постороитель....:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 10:10 |
|
||
|
SQL запрос.
|
|||
|---|---|---|---|
|
#18+
Если в качестве источника не более 2 таблицы, то построитель работает без проблем. Для настройки связи (LEFT, RIGHT, INNER) дважды щелкни левой клавишей мыши на линии соединяющей 2 таблицы. Либо выбери нужный тип соединения на закладке JOIN в первом столбце. В твоем случае, ты видимо первой (физически) вставил таблицу Table2, поэтому по умолчанию связь пошла к ней (LEFT JOIN). Тебе нужно либо удалить эту таблицу и вставить заново (тогда в качестве базовой примется таблица Table1), либо заменить связь на RIGHT JOIN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 12:23 |
|
||
|
SQL запрос.
|
|||
|---|---|---|---|
|
#18+
Нет, сначала я добавляю таблицу table1, затем table2. В любом случае получаю table2 TABLE2 LEFT OUTER JOIN table1 TABLE1. Right join не разрешается настроить - речь идет о построителе remote view (vfp 6.0) Вот такие пироги - приходится прописывать ручками :(. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 16:09 |
|
||
|
SQL запрос.
|
|||
|---|---|---|---|
|
#18+
Мы об одном и том же построителе говорим? Только что в VFP6SP5 сделал Remote View к 2 таблицам из MS SQL7 То что отображено на закладке JOIN в построителе, то и отображается в сформированном предложении SQL примерно так FROM {oj dbo.Devices Devices LEFT OUTER JOIN dbo.TypeDevs Typedevs ; ON Devices.TypeDevID = Typedevs.TypeDevID } Удалил строку и сделал наоборот FROM {oj dbo.TypeDevs Typedevs LEFT OUTER JOIN dbo.Devices Devices ; ON Typedevs.TypeDevID = Devices.TreeDevID } Никаких проблем. Другой вариант. Удалил линию отображающую связь между таблицами и создал ее заново (левой клавишей мыши на поле одной таблицы и не отпуская перетащить на поле другой). Двойной щелчок мыши на этой линии открывает дополнительное окно для настройки связи по JOIN. В раскрывающемся списке нахожу "Left Join" получается запрос вида FROM dbo.Devices Devices, dbo.TypeDevs Typedevs; WHERE Devices.TreeDevID *= Typedevs.TypeDevID Снова вхожу в связь и выбираю "Right Join" получаю FROM dbo.Devices Devices, dbo.TypeDevs Typedevs; WHERE Devices.TreeDevID =* Typedevs.TypeDevID Опять все хорошо! Как ты пытаешься эту связь установить в построителе. И кстати, с каким сервером? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2003, 16:33 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=412&tid=1597876]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
74ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 260ms |
| total: | 444ms |

| 0 / 0 |
