У меня есть две таблицы:MySQL JOIN независимо от ИНЕКЕ
debates
----------------------
id | name
----------------------
1 | why is that?
2 | why is the other?
opinions
---------------------
id | debate | opinion
---------------------
1 | 1 | because
2 | 1 | NULL
Если я использую покинул присоединитьсяON opinions.debate = debates.id я могу получить обе дискуссии (1, 2).
Если я использую где положение на верхней части влево присоединитьсяWHERE (opinions.opinion! = '' И opinions.opinion IS NOT NULL) я получаю только дискутировать с ид = 1
Как можно получить обе записи, но все же сохранить условие, потому что я использую его для подсчета записей?
ex. запрос:
SELECT
debates.id,
COUNT(opinions.id) AS total_opinions
FROM debates
LEFT JOIN
`opinions` ON `opinions`.`debate` = `debates`.`id`
WHERE
`opinions`.`opinion` IS NOT NULL AND `opinions`.`opinion` != ''
GROUP BY
`debates`.`id`
Если вернуться:
debates
-------------------
id | total_opinions
-------------------
1 | 1
2 | 0
Ну как вы могли получить дебаты 2 вы настаиваете на том, что ** мнений.опиньон НЕ НУЛЛ **? Точка левого соединения в первую очередь - это ПОЗВОЛЯТЬ мнений. ПРОТИВ БЫТЬ НУЛЛ, чтобы появилось обсуждение 2. –