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

Mysql 我有两个表,每个表有3列,我想得到不带null的值,因为null可能存在于任何列和行中,mysql,sql,Mysql,Sql,我想通过删除NULL来获得两个表的输出 电磁脉冲表 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 Null

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

电磁脉冲表

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      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

您可以在下面尝试-使用左连接和合并函数

    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

我不知道为什么你的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

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

这不包括空id的情况,如第3行。对于这种情况,我认为stud表是left table@michaelberkowski。如果有两个Emp的id为空,那么结果中只会有一行。这将为所示的示例输入生成所需的输出,但不清楚它的泛化程度。名称、部门是否总是唯一的?是否可能有2个Ravi Null和Null Ravi XX?所有列都可能为Null?这实际上不是一个关系表。这对我来说没有多大意义。为什么在两个不同的表中有相同的信息,但有不同的空值?StackOverflow不是免费的编码服务。所以我希望你能。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅并获取:@BillKarwin我在id字段中没有看到空值。很好的捕获。这不会得到任何想要的输出:他不想删除ID为null的行,他想用另一个表中相应的值替换null值。只需添加一个合并它们,例如:COALESCE e.name,d.name name现在与fa06的答案相同,只是缺少ID列。是的,关于ID,第三列中的值为null,但其他列不为null。这不会发生在正常的桌子上。问题在别处,只是说。