mysql - SQL返回属性不存在的连接的默认值

标签 mysql sql

我有一个 sql 语句的问题。 我的数据库是 MySQL 5.1。

我有 2 个表:

day_table 
date(pk)    note    ...
------- -----   ---
2012-03-29  foo ...
2012-03-30  bar ...
2012-03-31  foobar  ...

other_table
id  fk_date     key     value
--  -------     ---     -----
1   2012-03-29  foo     5
2   2012-03-30  bar     9
3   2012-03-30  foo     4
4   2012-03-31  bar     6
5   2012-03-31  foo     1

所以我需要这样的查询:

SELECT o.value, d.date FROM other_table o join day_table d on (...) where key = "bar" group by d.date;

我需要这样的结果:

result_table
date(pk)    value 
------- -----
2012-03-29  0 (or null) <---- THIS IS IMPORTANT!!!
2012-03-30  9       
2012-03-31  6

我知道问题出在连接上,但我需要获取 day_table 中的每个日期。

(My)SQL 可以吗?

最好的问候

最佳答案

使用左连接而不是内连接:

SELECT o.value, d.date FROM day_table o left join other_table d on o.date=d.date and key = "bar" group by d.date;

关于mysql - SQL返回属性不存在的连接的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9972914/

相关文章:

php - 如何仅在日期之间使用选择(sql)

sql - 动态 SQL - 从 C 程序打印 DATE

SQL 更新、删除和插入同时进行

sql - 最佳Sql数据异常检查REGEX

c# - 展平具有未知列数的子/父数据

java - 如何在netbeans上右键单击表格行?

mysql - 我可以在 MySQL (MariaDB) 中拥有一个能够保存所有类型的列吗?

mysql - 错误 1115 (42000) 在第 29 行 : Unknown character set: 'utf32'

sql - MySQL 查询匹配数组中的所有内容

mysql - 计算 Oracle 表中特定值之间模式的出现次数