如果您想了解从SQLServer中的两个表中进行选择的正确方法,没有要联接的公共字段的相关知识,那么本文是一篇不可错过的文章,我们将对sql语句从两个表中查询进行全面详尽的解释,并且为您提供关于SQL
如果您想了解从SQL Server中的两个表中进行选择的正确方法,没有要联接的公共字段的相关知识,那么本文是一篇不可错过的文章,我们将对sql语句从两个表中查询进行全面详尽的解释,并且为您提供关于SQL Server-根据第二个表中的最早日期加入两个表、SQL Server:从两个表中选择并插入一个表中、SQL Server:如何从两个表中选择列并显示第二个表中最近日期的相同值、SQL Server:比较两个表中的列的有价值的信息。
本文目录一览:- 从SQL Server中的两个表中进行选择的正确方法,没有要联接的公共字段(sql语句从两个表中查询)
- SQL Server-根据第二个表中的最早日期加入两个表
- SQL Server:从两个表中选择并插入一个表中
- SQL Server:如何从两个表中选择列并显示第二个表中最近日期的相同值
- SQL Server:比较两个表中的列
从SQL Server中的两个表中进行选择的正确方法,没有要联接的公共字段(sql语句从两个表中查询)
回顾过去,我曾经这样编写select语句:
SELECT table1.columnA, table2.columnAFROMtable1, table2WHEREtable1.columnA = ''Some value''
但是,我被告知,在“ FROM”子句中用逗号分隔表名不兼容ANSI92。始终应该有一个JOIN语句。
这导致了我的问题。…我想对两个表之间的数据进行比较,但是两个表中都没有用于创建联接的公共字段。如果我在FROM子句中使用逗号分隔的表名的“旧式”方法(请参见代码示例),则它可以很好地工作。如果认为这种方法是错误的或不正确的做法,我会感到不舒服。
有人知道在这种情况下该怎么办吗?
额外信息:
Table1包含“地理位置”数据类型的位置列表Table2包含“地理位置”数据的不同列表
我正在写select语句来比较位置之间的距离。据我所知,你不能在地理专栏上加入JOIN吗?
答案1
小编典典您可以(应该)使用CROSS JOIN
。以下查询将等同于您的查询:
SELECT table1.columnA , table2.columnAFROM table1 CROSS JOIN table2WHERE table1.columnA = ''Some value''
或者甚至可以将INNER JOIN与始终正确的条件一起使用:
FROM table1 INNER JOIN table2 ON 1=1
SQL Server-根据第二个表中的最早日期加入两个表
我正在寻找查询建议,以收集有关以下方面的数据。
表1 “案例”-包含各列:Id, Customer, Product, Reported Date
表2 ‘活动-包含各列:Case Id, Date Created, Created By
可能有许多与同一案例相关的活动。我想做的是编写一个查询以返回以下内容。
Case.Id, Case.Customer, Case.Product, Case.ReportedDate, Activity.DateCreated, Activity.CreatedBy,datediff(hour, Case.ReportedDate, Activity.DateCreated)
但 仅 在activity
与 最早的日期 。基本上显示了从首次创建案例到创建第一个活动之间的 时间差 。
我非常感谢有关如何完成此工作的任何建议join
。我尝试了一些尝试,但最终每种情况下返回多行。非常感谢!
答案1
小编典典试试这个…
SELECT C.ID ,C.Customer ,C.Product ,C.ReportedDate ,DATEDIFF(HOUR, C.ReportedDate, A.DateCreated) AS [TimePassed] ,A.CreatedByFROM [Case] C INNER JOIN (SELECT *, ROW_NUMBER() OVER (PARTITION BY CaseId ORDER BY DateCreated ASC) AS rn FROM [Activity]) A ON C.ID = A.CaseIdWHERE A.rn = 1
SQL Server:从两个表中选择并插入一个表中
我有一个带有两个表变量(@temp和@ temp2)的存储过程。
如何从两个临时表中选择值(两个表变量都包含一行)并将它们全部插入一个表中?
我尝试了以下操作,但此操作不起作用,并且出现错误,即SELECT和INSERT语句的数量不匹配。
DECLARE @temp AS TABLE
(
colA datetime,colB nvarchar(1000),colC varchar(50)
)
DECLARE @temp2 AS TABLE
(
colD int
)
…
INSERT INTO MyTable
(
col1,col2,col3,col4
)
SELECT colD FROM @temp2,colA FROM @temp,colB FROM @temp,colC FROM @temp
蒂姆,非常感谢您对此提供的任何帮助。
SQL Server:如何从两个表中选择列并显示第二个表中最近日期的相同值
我怀疑你可能想要这样的东西
SELECT
t1.id,t1.[value] AS [table1],t1.[date],(
SELECT TOP 1 t2.[value]
FROM [Table2] t2
WHERE t2.[date] < t1.[date]
ORDER BY t2.[date] DESC
) AS [table2]
FROM [Table1] t1;
在子查询中,它应该是 t2.[date] < t1.[date]
还是 t2.[date] <= t1.[date]
我会根据两个表之间的确切日期/时间匹配的情况由您决定。
您可以尝试如下右连接
SELECT dbo.Table1.id,dbo.Table1.value1 as 'table1',dbo.Table2.date,dbo.Table2.value
FROM
dbo.Table1
Right JOIN dbo.Table2 ON
dbo.Table1.date = dbo.Table2.date
注意这只是一个例子。您应该添加 2 个表,每个表具有 1 个相同的主键,并且具有相同数量的主键
,不清楚table2的行应该以什么为依据放在表1的对应行旁边? 例如为什么表 2 的 id 1 应该与 table1 的 id 1 和 2 相对?同样,为什么表 2 的 id 2 与表 1 的 ids 3、4、5、6 相对?
SQL Server:比较两个表中的列
我最近已经完成了从某些应用程序的真正旧版本到当前版本的迁移,并且在迁移数据库时遇到了一些问题。
我需要一个查询,可以帮助我比较两个表中的列。我的意思是不是行中的数据,我需要比较列本身以找出我错过的表结构中的哪些变化。
今天关于从SQL Server中的两个表中进行选择的正确方法,没有要联接的公共字段和sql语句从两个表中查询的分享就到这里,希望大家有所收获,若想了解更多关于SQL Server-根据第二个表中的最早日期加入两个表、SQL Server:从两个表中选择并插入一个表中、SQL Server:如何从两个表中选择列并显示第二个表中最近日期的相同值、SQL Server:比较两个表中的列等相关知识,可以在本站进行查询。
本文标签: