Waf*_*les 4 sql database relational-algebra
假设我有两个表,它们都有用户ID.我想执行一个操作,它将返回表1中不在表2中的所有用户IDS.我知道必须有一些简单的方法来执行此操作 - 任何人都可以提供一些帮助吗?
它很慢,但你通常可以用'不在'之类的东西来完成它.(各种RDBMS系统中还有其他功能以更好的方式执行此操作,例如,Oracle具有可用于此的"exists"子句.
但你可以说:
select id from table1 where id not in (select id from table2)
Run Code Online (Sandbox Code Playgroud)
有几种方法可以做到这一点.这是一种使用方法NOT EXISTS
:
SELECT userid
FROM table1
WHERE NOT EXISTS
(
SELECT *
FROM table2
WHERE table1.userid = table2.userid
)
Run Code Online (Sandbox Code Playgroud)
这是使用连接的另一种方法:
SELECT table1.userid
FROM table1
LEFT JOIN table2
ON table1.userid = table2.userid
WHERE table2.userid IS NULL
Run Code Online (Sandbox Code Playgroud)
最快的方法取决于数据库.
归档时间: |
|
查看次数: |
3385 次 |
最近记录: |