Mysql 我有两个表,每个表有3列,我想得到不带null的值,因为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
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。这不会发生在正常的桌子上。问题在别处,只是说。