Как к GROUP_CONCAT, где есть пустые значения в MYSQL, будут поля из LEFT JOIN? - PullRequest
0 голосов
/ 31 марта 2019

Это связано с моим предыдущим примером вопроса здесь . У меня есть следующий запрос sql:

SELECT 
listings.*,
region.REGION_ID,
#GROUP_CONCAT(region.REGION_ID) AS GROUP_IDs,
......
......
INNER JOIN schedule ON schedule.SCHEDULE_ID = listings.LISTING_SCHEDULE_ID 
LEFT JOIN listing_region ON listing_region.LIST_REGION_LISTING_ID = 
listings.LISTING_ID 
......
......
WHERE listings.LISTING_ID IN 
(SELECT LISTING_ID FROM listings WHERE ..........

Результат выглядит следующим образом:

Raw data without GROUP_CONCAT

Я получаю несколько RegionID для одного и того же ListingID, а остаток равен нулю (ожидается) для несуществующих записей из LEFT-соединения.

Теперь мне нужно сгруппировать region_Ids для того же идентификатора листинга.

Таким образом, единственное изменение, которое я сделал, это закомментировал «region.REGION_ID» и включил «GROUP_CONCAT (region.REGION_ID) AS GROUP_IDs».

Результат выглядит следующим образом:

Results with GROUP_CONCAT

Я не понимаю, почему нулевые строки теперь отбрасываются. Я хочу их...! Что я должен исправить здесь?

1 Ответ

0 голосов
/ 31 марта 2019

Единственное изменение, которое я должен был сделать, чтобы добавить: GROUP BY ListingID к предложению основного фильтра.

...