SQL FIDDLE HERESQL возвращение NULL вместо пустого результата
Я делаю простую систему блог, где посты могут иметь более чем одну категории, поэтому у меня есть этот запрос:
SELECT *, GROUP_CONCAT(item_category) AS item_categories
FROM (`dev_pages`)
LEFT JOIN `dev_items_to_categories` ON `dev_items_to_categories`.`item_id` = `dev_pages`.`page_id`
WHERE deleted_time IS NULL
AND `page_type` = 'blog'
AND `item_category` = '16'
ORDER BY `page_title` ASC
Он работает нормально, но если нет результатов вместо возвращаться ничто возвращает NULL или значение по умолчанию (см SQL скрипку)
мне удалось сделать вокруг, но мне было интересно, если кто-то лучшее решение этой проблемы:
SELECT a.* FROM (
SELECT *, GROUP_CONCAT(item_category) AS item_categories
FROM (`dev_pages`)
LEFT JOIN `dev_items_to_categories` ON `dev_items_to_categories`.`item_id` = `dev_pages`.`page_id`
WHERE deleted_time IS NULL
AND `page_type` = 'blog'
AND `item_category` = '16'
ORDER BY `page_title` ASC
) AS a
WHERE page_id > 0
Вам не хватает 'GROUP BY'. И любые условия в таблице 'dev_items_to_categories' должны находиться в разделе' ON', а не 'WHERE'. – Barmar