我有两个表:tableA和tableB。我如何获得tableA中的所有记录,但不是tableB中的记录?我对正确的方式感兴趣,而不是解决方法。我尝试使用左连接,然后添加where ID is not null
。它有效,但我不确定这是否是正确的做法。2个SQL表之间的区别
2
A
回答
4
select * from tableA
where id not in (select id from tableB)
或
select * from tableA a
left join tableB b on a.id = b.id
where b.id is null
两者都是以获取你的要求完全可以接受的方式。
0
如果需要在页面上显示数据(编程),如果需要将数据从一个表移动到另一个表进行备份或其他类似目的,则必须使用连接,则需要sql比较工具。 首先你需要sql左连接。让你的表格中的左一个,并把和为B
select * from A
left join B on A.id = B.id
where b.id is null
0
可以使用NOT EXISTS
加入。我倾向于使用NOT EXISTS
,因为当列允许空值但没有空值时,NOT IN
的性能明显劣于NOT EXISTS
。
Select * from table1 a
Where not exists (Select ID from table2 b where a.ID = b.ID)
在non-nullable
列,您可以使用其中的哪个适合于您的情况作为的行为和NOT IN
性能和NOT EXISTS是一样的。
0
的Sql小提琴[] [1]
Demohttp://www.sqlfiddle.com/#!3/10300/2
select * from table1 where id not in(select id from table2)
0
因为你没有给表架构让我们假设有每个table.id1主键,ID2
你可以在左连接的帮助下完成。
SELECT * FROM表1左连接表2,其中ID2是空
注意,这不是一个实际的查询只是一个提示让你先走。
相关问题
- 1. 2个数据表之间的区别
- 2. 2个exe文件之间的区别
- 3. 2个JUnit Assert类之间的区别
- 4. 使2个按钮之间的区别
- 5. 2个正则表达式字符串之间的区别
- 6. 2 jquery绑定之间的区别
- 7. Long.toBinaryString()和Long.toString(num,2)之间的区别?
- 8. [Object,Object]和Array之间的区别(2)
- 9. 如何检查sql中两个表之间的区别?
- 10. Apache Spark SQL和MongoDB之间的区别?
- 11. PDO:rowCount()和SQL COUNT(col)之间的区别
- 12. PROC SQL和sqldf之间的区别
- 13. SQL关键字之间的区别
- 14. 临时表和表变量之间的区别在SQL 2005中
- 15. SQL临时数据库,临时表和表之间的区别
- 16. 区别使用JavaScript 2个时间戳之间不使用moment.js
- 17. SQL - 查询基本2个表之间
- 18. SQL Server中的information_schema vs sys表之间的区别
- 19. 在java中找到2个句子之间的区别词
- 20. 2个相邻字段之间的区别 - 日期 - PHP MYSQL
- 21. 生成2个survdiff对象之间的区别
- 22. java中2个对象之间的区别
- 23. 2个整数字段之间的区别
- 24. XSLT - 2个XML变量之间的区别
- 25. 查找2个文件之间的区别
- 26. 2个联合查询之间的区别
- 27. Unix中2个命令之间的区别AIX
- 28. 2个AJAX弹出日历之间的区别
- 29. 协议和代表之间的区别?
- 30. Python中列表之间的区别
没有加入的人应该会更快吗?或者他们完全一样?我总是被告知连接应该几乎只用于显示来自2个表格的数据,否则,使用select .. from ..在哪里选择... – Pacane 2012-08-06 17:14:58
我认为这取决于。我在我的数据库的表上做了两个查询的'select select ...',第一个语句对'null'键做了全表扫描。第二个没有。但是,如果性能是一个问题,我会建议使用'explain'运行这两个查询并查看差异。 – 2012-08-06 17:19:23