Перестал работать LEFT JOIN ... WHERE ... userid IS NULL

Был запрос и работал корректно. Таблица 1:

id  title   
1   КомпанияА   
2   КомпанияБ   
3   КомпанияВ   

Таблица 2:

id  companiesid userid  color   
1   1           0       6   
3   1           4       0   
2   2           0       3   
4   3           4       0

Запрос:

SELECT 
`c`.`color` AS `c--color`, 
`companies`.`id` AS `companies--id`, 
`companies`.`title` AS `companies--title` 
FROM `tbl_companies` AS `companies` 
LEFT JOIN `tbl_companies_colors` AS `c` 
ON `c`.`companiesid`=`companies`.`id` 
WHERE  (`c`.`userid`='0' OR `c`.`userid` IS NULL);

возвращал:

c--color    companies--id   companies--title
6           1               КомпанияА
3           2               КомпанияБ   
NULL        3               КомпанияВ

После переезда возвращает только:

c--color    companies--id   companies--title
6           1               КомпанияА
3           2               КомпанияБ

На обоих серверах (старом и новом):

Версия сервера: 5.7.37-log - MySQL Community Server (GPL)

и

sql_mode = '', 

разница только в том, что старый на выделенном железе, новый в докере. Не могу понять причину, почему почему перестало работать OR c.userid IS NULL


Ответы (1 шт):

Автор решения: Ilya Baharev

Был неправильно составлен запрос, правильно:

SELECT 
`c`.`color` AS `c--color`, 
`companies`.`id` AS `companies--id`, 
`companies`.`title` AS `companies--title`
FROM `tbl_companies` AS `companies`
LEFT JOIN `tbl_companies_colors` AS `c` 
ON `c`.`companiesid`=`companies`.`id` AND (`c`.`userid`='0' OR `c`.`userid` IS NULL);
→ Ссылка