我有两个数据库表,tmp1和tmp2
tmp1:
+----+------+---------+---------+
| id | name | add1 | add2 |
+----+------+---------+---------+
| 1 | NULL | NULL | NULL |
| 2 | NULL | NULL | NULL |
| 3 | mum1 | rajpur1 | rajpur2 |
| 4 | mum3 | rajpur3 | rajpur4 |
| 5 | mum4 | rajpur4 | rajpur5 |
+----+------+---------+---------+
tmp2:
+----+------+---------+---------+
| id | name | add1 | add2 |
+----+------+---------+---------+
| 1 | NULL | NULL | NULL |
| 2 | mum | rajpur | rajpur1 |
| 3 | NULL | NULL | NULL |
| 4 | mum2 | rajpur2 | rajpur3 |
| 5 | mum4 | rajpur4 | rajpur5 |
+----+------+---------+---------+
select a.id
from tmp1 a
inner join tmp2 b
where a.id = b.id
and (a.name is NULL or a.add1 is NULL or a.add2 is NULL)
or (a.name!=b.name or a.add1!=b.add1 or a.add2!=b.add2);
在这里,我尝试了上面的代码以显示以下结果:
+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
| 4 |
+----+
但是它并没有显示我想要的结果。
在这里,我要打印第一个表的ID,其中一个或多个其他行的值为null或一个或多个其他行的值与tmp2的那些行值不匹配。
答案 0 :(得分:1)
您错过了actualData map ((object,index) -> {
(object mapObject (value,key) -> {(mappings[key]):value})
}
。正如Impaler所指出的那样,还需要检查temp2中的列是否为ON
。
NULL
答案 1 :(得分:1)
您缺少指定如何联接表的ON
子句。另外,您的搜索条件不完整。
select a.id
from tmp1 a
join tmp1 b on a.id = b.id
where a.name is null or a.add1 is null or a.add2 is null
or b.name is null or b.add1 is null or b.add2 is null
or (a.name <> b.name or a.add1 <> b.add1 or a.add2 <> b.add2)