我有两张桌子。
第一张表:
叫 kimlik
id ad
---------------
1 ahmet
2 mehmet
3 ali
第二张表:
称为西帕里斯
id kimlikid tarih miktar
------------------------------------------------------------
1 1 22.09.2011 10
1 2 22.09.2011 100
我想通过 SQL 查询列出未在 2011 年 9 月 22 日下订单的人员。
结果:
ad tarih
--------------------------
ali 22.09.2011
一些方法:
不在
不存在
左连接
您选择的方法通常取决于个人偏好和性能(它们可以根据您的数据量生成不同的查询计划),即:如果 siparis 每个 kimlik id 有 1,000 行,则NOT EXISTS通常比LEFT JOIN快。
编辑:添加变量以在结果集中进行比较和显示
第 4 种方法是在 RDBMS 支持的地方使用
EXCEPT
(aka )。 这应该给出相同的执行计划MINUS
NOT EXISTS
您必须将日期过滤器添加为常量。
当您检查“无行”时,当然没有可从中提取数据的行。