SQL-запрос, как ВЫБРАТЬ данные, даже если критерии не совпадают в предложении WHERE
Я уверен, что должен быть относительно простой способ сделать это, но он ускользает от меня в данный момент. Предположим, у меня есть таблица SQL, подобная этой:
+-----+------+-----+-----+
|type |value | Monthly |
+=====+======+=====+=====+
| a | 5 | Jan | << a,Jan
+-----+------+-----+-----+
| a | 3 | Feb | << a,Feb
+-----+------+-----+-----+
| a | 7 | April | << a,April
+-----+------+-----+-----+
Я группирую свой запрос по типу и по месяцам, скажем, я ищу значение с января по апрель, в этом случае значение марта может иметь какое-либо значение, но я все еще хочу, чтобы оно отображало 0, как это сделать?:
+-----+------+-----+-----+
|type |value | Monthly |
+=====+======+=====+=====+
| a | 5 | Jan | << a,Jan
+-----+------+-----+-----+
| a | 3 | Feb | << a,Feb
+-----+------+-----+-----+
| a | 0 | Mar | << a,Mar
+-----+------+-----+-----+
| a | 7 | April | << a,April
+-----+------+-----+-----+
2 ответа
Вам понадобится таблица со списком месяцев (например, month_id, month_name). Затем вы можете сделать что-то вроде этого:
SELECT t.*, m.* FROM months m LEFT JOIN table t ON m.month_id = t.month_id
В противном случае запрос не сможет узнать, что такое март.
В sql сделайте ваш запрос так:
SELECT * FROM table WHERE (value='0' OR value='yourcondition') AND..