Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MS SQL left и inner join дают один результат / 7 сообщений из 7, страница 1 из 1
09.10.2018, 08:39
    #39714749
ALARMus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS SQL left и inner join дают один результат
Здравствуйте.
Делая выборку столкнулся с такой непонятной для меня вещью:

Таблица 1 имеет порядка 19000 записей, желая вывести все строки из этой таблицы и для нее те значения, которые совпадают по ключевому полю с таблицей 2.
Ожидал получить в результате запроса тоже количество записей что и в таблице 1 (по крайней мере не меньше, т.к. во второй таблице может быть более одной записи подпадающей под условие on в join)
Но получаю почему-то порядка 800 записей (замена с left join на inner показала что результат не меняется).

Помогите разобраться в чем может быть дело.
...
Рейтинг: 0 / 0
09.10.2018, 08:41
    #39714750
Посетитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS SQL left и inner join дают один результат
ALARMusЗдравствуйте.
Делая выборку столкнулся с такой непонятной для меня вещью:

Таблица 1 имеет порядка 19000 записей, желая вывести все строки из этой таблицы и для нее те значения, которые совпадают по ключевому полю с таблицей 2.
Ожидал получить в результате запроса тоже количество записей что и в таблице 1 (по крайней мере не меньше, т.к. во второй таблице может быть более одной записи подпадающей под условие on в join)
Но получаю почему-то порядка 800 записей (замена с left join на inner показала что результат не меняется).

Помогите разобраться в чем может быть дело.

предлагаете лечить запор по фотографии?
запрос то где ваш?

ЗЫ. хрустальный шар подсказывает, что вы во where могли наложить фильтр на правую таблицу.
...
Рейтинг: 0 / 0
09.10.2018, 09:20
    #39714760
ALARMus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS SQL left и inner join дают один результат
Посетитель,

Да есть where, в котором указано условие на "правую" таблицу.
...
Рейтинг: 0 / 0
09.10.2018, 09:29
    #39714763
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS SQL left и inner join дают один результат
ALARMusПосетитель,

Да есть where, в котором указано условие на "правую" таблицу.Так делать нельзя. Это условие должно быть в секции FROM -> ON.
...
Рейтинг: 0 / 0
09.10.2018, 09:36
    #39714766
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS SQL left и inner join дают один результат
ALARMus,

авторДа есть where, в котором указано условие на "правую" таблицу.
Это автоматом превращает LEFT JOIN в INNER
...
Рейтинг: 0 / 0
09.10.2018, 09:36
    #39714767
Посетитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS SQL left и inner join дают один результат
L_argoALARMusПосетитель,

Да есть where, в котором указано условие на "правую" таблицу.Так делать нельзя. Это условие должно быть в секции FROM -> ON.

делать можно, если умеючи.
а если не умеючи - то просто не стоит удивляться результату.
...
Рейтинг: 0 / 0
09.10.2018, 09:52
    #39714773
ALARMus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS SQL left и inner join дают один результат
L_argo,
спасибо, заменил where на ON and _условие на правую таблицу_
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MS SQL left и inner join дают один результат / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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