我正在尝试加入表格,但可以得到预期的结果

时间:2019-04-28 08:40:39

标签: mysql

我正在尝试使用SQL Join连接到表。 1号桌

event_id | emp_id | event_date |
00000001 | 000002 | 2019-05-31 |

表2

emp_id | emp_name |
000001 | a
000002 | b

我的代码是这样的

"Select table2.emp_id,table2.emp_name from table2 left join table1 
on tabl2.emp_id = table1.emp_id where event_date <> '2019-05-31'"

我的愿望输出是这样的:

emp_id | emp_name
000001 | a

但是它给了我空白的结果。

3 个答案:

答案 0 :(得分:0)

您可以将条件event_date <> '2019-05-31'WHERE一起使用,而不用将其放在AND中,这样您将获得预期的结果:

Select table2.emp_id,table2.emp_name  
from table2 
left join table1 on tabl2.emp_id = table1.emp_id AND event_date <> '2019-05-31'

如果要在WHERE子句上添加条件,它将从两个表中进行过滤,因此LEFT JOIN将不会返回您的预期结果

答案 1 :(得分:0)

必须将case event_date is null添加到where子句:

select table2.emp_id, table2.emp_name 
from table2 left join table1 
on table2.emp_id = table1.emp_id 
where table1.event_date is null or table1.event_date <> '2019-05-31'

因为您使用的是left join
请参见demo
结果:

| emp_id | emp_name |
| ------ | -------- |
| 000001 | a        |

答案 2 :(得分:0)

左表中是否有emp_id 000001?如果没有,那么您将看不到它,因为您是专门从左侧表(使用左侧联接)中提取结果

尝试并删除单词“ left”:

    Select table2.emp_id,table2.emp_name from table2
    join table1
    on tabl2.emp_id = table1.emp_id 
    where event_date <> '2019-05-31'