即使第二个表条件为假,我也要继续显示我的第一个表数据。
表1
---------------------------
ID | Name
---------------------------
1 | Panda
2 | Tiger
---------------------------
表2
---------------------------
ID | Date | Weight
---------------------------
1 | 2019-02-01 | 30
1 | 2019-02-10 | 31
---------------------------
当我要求日期='2019-02-18'和ID = 1的数据时,我期望这样的数据
-------------------------------------
ID | Name | Date | Weight
-------------------------------------
1 | Panda | 2019-02-18 | 0
-------------------------------------
答案 0 :(得分:1)
您是否正在寻找一个简单的LEFT JOIN
,如下所示?
SELECT t1.id, t1.name, date '2019-02-18', COALESCE(t2.weight, 0) weight
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.id AND t2.date = date '2019-02-18'
WHERE t1.id = 1
LEFT JOIN
可选地搜索具有给定日期标准的table2
中的记录。如果没有匹配的记录,则t2.weight
为NULL
:COALESCE()
遇到这种情况,并返回0
。