Sql 查询同一服务器上不同数据库中的表
我运行了两个我遇到的查询,它们似乎都返回了不同的结果Sql 查询同一服务器上不同数据库中的表,sql,sql-server,select,Sql,Sql Server,Select,我运行了两个我遇到的查询,它们似乎都返回了不同的结果 SELECT * FROM [Log].[dbo].[LogTable] AS MainLog, [Archive].[dbo].[LogTable] ORDER BY [Log].[dbo].[LogTable] DESC; SELECT * FROM [Log].[dbo].[LogTable] UNION ALL SELECT * FROM [Archive].[dbo].[LogTable] ORDER BY [Log].
SELECT *
FROM [Log].[dbo].[LogTable] AS MainLog, [Archive].[dbo].[LogTable]
ORDER BY [Log].[dbo].[LogTable] DESC;
SELECT *
FROM [Log].[dbo].[LogTable]
UNION ALL
SELECT *
FROM [Archive].[dbo].[LogTable]
ORDER BY [Log].[dbo].[LogTable] DESC;
第二个查询返回了正确的行数。它的顺序也很正确。第一个查询返回了很多行,第一个查询到底做了什么?它没有出错,并且确实合并了数据。如果不指定如何以及在哪些列上进行连接,则执行交叉连接。第二个查询是从每个表中选择记录并将结果连接在一起。在查询一中得到的结果称为笛卡尔积。让我们一步一步地阅读您的查询。
在第二个查询中,您只是在一个接一个地编写两条语句的o/p。a、 b,c,1,2,3第一个查询本质上是交叉连接,请参见