Нормально ли для Laravel выражение «wherenotin» включать нулевые значения? - PullRequest
0 голосов
/ 01 мая 2018

Я использую Laravel 5.6.7 с драйвером сервера SQL, подключающимся к SQL Server 2014.

При попытке выполнить следующий запрос:

Warrant::where('vsStatus',632)
        ->whereNotIn('vsType',[-26927,-26929])
        ->whereNotIn('vsCategory',[-15723,-21708,-21708])
        ->where('Warrant.ORI','XXXXXXXXX')
        ->join('GlobalJacket','GlobalJacket.JacketID','=','Warrant.JacketID')
        ->where('GlobalJacket.JacketType','=',2)->get();

Я получаю обратно 2 набора результатов, где vsType = -19325 и где vsType = null

Это запрос, видимый отладочной панелью:

select * from [Warrant] inner join [GlobalJacket] on [GlobalJacket].[JacketID] = [Warrant].[JacketID] where [vsStatus] = '632' and [vsType] not in ('-26927', '-26929') and [vsCategory] not in ('-15723', '-21708', '-21708') and [Warrant].[ORI] = 'XXXXXXXXX' and [GlobalJacket].[JacketType] = '2'

И при вставке этого непосредственно в Management Studio 17 я получаю только 1 результат, где vsType = -19325

Теперь я мог бы легко включить нулевое значение в список значений whereNotIn, однако задумано ли это? Все вещи, которые считают «нулевым», отсутствуют в списке, однако почему MMS игнорирует нулевое значение, а красноречивое - нет?

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...