/ / Як заповнити відсутні значення в MySQL запит - mysql

Як заповнити відсутні значення в MySQL запиті - mysql

Передумови: Я пишу запит для порівняння фактичні та ідеальні дані про зростання для дітей. Діти бачать док один раз на рік, документи заходи, очкиотримують закладені над типовими кривими зростання. Проблема полягає в тому, що використовуваний графічний компонент вимагає фіксованого числа точок даних. Немає проблем з відсутністю даних як NULL, але вони повинні бути там.

Дані, які я отримав:

age weight/kg
-----------------
2   10
3   11
6   20

Очікуваний:

age weight/kg
-----------------
2   10
3   11
4   NULL
5   NULL
6   20

Необхідні вікові значення є фіксованими (2-6 у цьому прикладі) і можуть бути жорстко закодовані, оскільки вони не знаходяться в жодній таблиці, інакше я б приєднався і групував. Я хотів би використовувати один запит.

Відповіді:

2 для відповіді № 1

Якщо ви хочете, щоб запит, в якому послідовність може генеруватися між 0 і 99, є запитом. Ви можете отримати вагу з підзапису, який знаходиться у вашій таблиці. Я дав діапазон від 2 до 6 тут.

SELECT
SEQ.SeqValue AS age,
(SELECT weight FROM your_table WHERE age = SEQ.SeqValue) AS "weight/kg"
FROM
(
SELECT
(TENS.SeqValue + ONES.SeqValue) SeqValue
FROM
(
SELECT 0  SeqValue
UNION ALL
SELECT 1 SeqValue
UNION ALL
SELECT 2 SeqValue
UNION ALL
SELECT 3 SeqValue
UNION ALL
SELECT 4 SeqValue
UNION ALL
SELECT 5 SeqValue
UNION ALL
SELECT 6 SeqValue
UNION ALL
SELECT 7 SeqValue
UNION ALL
SELECT 8 SeqValue
UNION ALL
SELECT 9 SeqValue
) ONES
CROSS JOIN
(
SELECT 0 SeqValue
UNION ALL
SELECT 10 SeqValue
UNION ALL
SELECT 20 SeqValue
UNION ALL
SELECT 30 SeqValue
UNION ALL
SELECT 40 SeqValue
UNION ALL
SELECT 50 SeqValue
UNION ALL
SELECT 60 SeqValue
UNION ALL
SELECT 70 SeqValue
UNION ALL
SELECT 80 SeqValue
UNION ALL
SELECT 90 SeqValue
) TENS
) SEQ
WHERE SEQ.SeqValue BETWEEN 2 AND 6

0 для відповіді № 2

Використовуйте IFNULL() у своєму запиті присвоїти йому значення нуль http://www.mysqltutorial.org/mysql-ifnull/