Hive中的EXISTS
子句可以用于在查询中检查一个或多个表是否存在
SELECT *
FROM table1 t1
WHERE EXISTS (
SELECT 1
FROM table2 t2
WHERE t1.id = t2.id
);
在这个例子中,我们从table1
中选择所有记录,但只有当table2
中存在具有相同id
的记录时。如果table2
中没有与table1
中的任何记录匹配的id
,则该记录不会出现在结果中。
你还可以使用NOT EXISTS
来选择那些在另一个表中不存在的记录:
SELECT *
FROM table1 t1
WHERE NOT EXISTS (
SELECT 1
FROM table2 t2
WHERE t1.id = t2.id
);
这个查询将返回table1
中那些在table2
中没有匹配id
的记录。