我有两个表,每个表有3列,我想得到不带null的值,因为null可能出现在任何列和行中

wwodge7n  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(212)

我想通过删除null来获得两个表的输出
emp表

id     name   dept
1      Null    EE                 
2      Ravi    Null 
NULL   Mani    CSE

螺柱台

id name  dept       
1  Manju NULL       
2  NULL  ECE        
3  Mani  CSE

输出

id name dept
1  Manju EE 
2  Ravi  ECE
3  Mani  CSE
kwvwclae

kwvwclae1#

您可以在下面尝试使用left join和coalesce()函数

select a.id, coalesce(a.name,b.name) as name, coalesce(a.dept,b.dept)
    from stud a left join emp b
    on a.id=b.id
mv1qrgav

mv1qrgav2#

我不知道为什么你的id是可以为空的,从我可以看到它是你表的主键。但是如果你想选择所有的数据删除空值。只需添加一个条件。例如:

SELECT COALESCE(e.name, s.name) name,
       COALESCE(e.dept, s.dept) dept
  FROM emp e
     LEFT JOIN stud s
        ON s.id = e.id

但老实说,你应该检查你创建数据库的方式。正如有人评论的那样,这不是一个关系表。

相关问题