У меня есть всего 6 таблиц, в которых разная информация сохранёнаMySQL присоединиться к нескольким таблицам и сосчитать Query
Теперь мне нужен результат, в котором получает отсчет от 5 таблиц и выбрать все данные из главной таблицы, но если запись делает не существует, чем это должно быть нужно возвращать 0, а не строка не нашел, что проблема здесь
Я попытался ниже запроса, но не получил успеха
SELECT
u.*,
COUNT(DISTINCT c.id) as comments,
COUNT(DISTINCT d.id) as dislikes,
COUNT(DISTINCT l.id) as likes,
COUNT(DISTINCT s.id) as shares,
COUNT(DISTINCT t.id) as tags
FROM
job_details as u
JOIN job_comments as c ON u.id = c.job_id
JOIN job_dislike as d ON u.id = d.job_id
JOIN job_like as l ON u.id = l.job_id
JOIN job_share as s ON u.id = s.job_id
JOIN job_tags as t ON u.id = t.job_id
WHERE
u.id = c.job_id AND
u.id = d.job_id AND
u.id = l.job_id AND
u.id = s.job_id AND
u.id = t.job_id
GROUP BY
u.id
Этот запрос выполняется, но не сделал получить точный результат. Я не совсем понимаю, почему.
Я надеялся, что кто-то здесь может мне помочь?
Спасибо!
Опубликуйте некоторые примеры данных, фактические и ожидаемые результаты. –
Вероятно, вы получаете меньше данных, чем ожидаете из-за того, что у вас есть INNER JOINS ... вы должны проверить, какая из них является основной, и присоединиться к другим с LEFT Join. – John