как показать все результаты запроса, даже если результаты пусты - PullRequest
1 голос
/ 03 июня 2019

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

результат моего запроса, как этот

pendidikan| Male | Famale | Total
----------+------+--------+------
    SD    |  3   |   4    |  7
   SMP    |  2   |   1    |  3
   SMA    |  1   |   3    |  4
    S1    |  10  |   1    |  11

НО я хочу, чтобы результат был таким:

pendidikan| Male | Famale | Total
----------+------+--------+------
    SD    |  3   |   4    |  7
   SMP    |  2   |   1    |  3
   SMA    |  1   |   3    |  4
    S1    |  10  |   1    |  11
    S2    |  0   |   0    |  0
    S3    |  0   |   0    |  0

Я хочу показать пустые данные из моей базы данных.это мой запрос

SELECT a.NamaStatusPendidikan, COUNT(c.IDPencaker) as total,
count(case when c.JenisKelamin='0' then 1 end) as laki,
count(case when c.JenisKelamin='1' then 1 end) as cewe 
FROM msstatuspendidikan as a JOIN mspencaker as c ON
a.IDStatusPendidikan = c.IDStatusPendidikan JOIN 
mspengalaman as d ON c.IDPencaker = d.IDPencaker 
WHERE d.StatusPekerjaan = '0' AND c.RegisterDate 
BETWEEN '2019-01-01' AND '2019-03-01' GROUP BY a.IDStatusPendidikan

1 Ответ

1 голос
/ 03 июня 2019

Попробуйте выполнить этот запрос:

SELECT sp.NamaStatusPendidikan, 
       COUNT(*) as total,
       SUM( p.JenisKelamin = 0 ) as laki,
       SUM( p.JenisKelamin = 1 ) as cewe 
FROM msstatuspendidikan sp LEFT JOIN
     mspencaker p
     ON sp.IDStatusPendidikan = p.IDStatusPendidikan AND
        p.RegisterDate BETWEEN '2019-01-01' AND '2019-03-01' LEFT JOIN 
     mspengalaman g
     ON g.IDPencaker = c.IDPencaker AND
        g.StatusPekerjaan = 0
GROUP BY sp.IDStatusPendidikan;

Примечания:

  • JOIN s были заменены на LEFT JOIN s.
  • Условия фильтрациина всех, кроме первой таблицы, были перемещены в пункты ON.
  • Это заменяет бессмысленные псевдонимы таблицы сокращениями таблицы, поэтому таблицу легче читать.
  • Вещи, похожие начисла, вероятно, являются числами, поэтому я удалил одинарные кавычки.
  • Это упрощает подсчет, используя тот факт, что MySQL рассматривает логические значения как числа в числовом контексте.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...