从SQL Server中的两个表中获取数据,其中条件为一列
我有两张表从SQL Server中的两个表中获取数据,其中条件为一列,sql,sql-server,Sql,Sql Server,我有两张表练习和训练。我想从这两个表中获取数据,如下所示: 表格结构(截图):上面的表格是锻炼表格,下面的表格是锻炼表格 我希望结果如下(截图): 在锻炼_name='Testing'的where条件下,如何从这两个表中获得上述结果?简单地将它们连接起来 select w.workout_name, e.exercise_name, e.exercise_image from Workouts w join Exercises e on e.exercise_name = w.exerci
练习
和训练
。我想从这两个表中获取数据,如下所示:
表格结构(截图):上面的表格是锻炼表格,下面的表格是锻炼表格
我希望结果如下(截图):
在
锻炼_name='Testing'
的where条件下,如何从这两个表中获得上述结果?简单地将它们连接起来
select w.workout_name, e.exercise_name, e.exercise_image
from Workouts w
join Exercises e on e.exercise_name = w.exercise_name
where w.workout_name = 'Testing'
只需加入他们
select w.workout_name, e.exercise_name, e.exercise_image
from Workouts w
join Exercises e on e.exercise_name = w.exercise_name
where w.workout_name = 'Testing'
我们也可以使用交叉申请-
SELECT w.workout_name, w.exercise_name, x.exercise_image
FROM Workouts w
CROSS APPLY
(
SELECT e.exercise_image FROM Exercises e WHERE e.exercise_name = w.exercise_name
) x
WHERE w.workout_name = 'Testing'
我们也可以使用交叉申请-
SELECT w.workout_name, w.exercise_name, x.exercise_image
FROM Workouts w
CROSS APPLY
(
SELECT e.exercise_image FROM Exercises e WHERE e.exercise_name = w.exercise_name
) x
WHERE w.workout_name = 'Testing'
这不是在为每个
训练执行子查询吗?
?交叉应用用于将表连接到表值函数。。这个问题应该用常规的方法来解决join@caramiriel别担心,sql server并没有那么幼稚。您编写的查询和sql server运行的查询通常会非常不同。阅读rsbms中的查询优化程序的功能:)它在创建执行计划时负责where子句。因此,它将只执行“Testing”锻炼名称的子查询。@CaiusJard啊,太好了,我没想到它也会在交叉应用中执行。谢谢你的信息。(queryplan:)这不是在为每个训练执行子查询吗?
?交叉应用用于将表连接到表值函数。。这个问题应该用常规的方法来解决join@caramiriel别担心,sql server并没有那么幼稚。您编写的查询和sql server运行的查询通常会非常不同。阅读rsbms中的查询优化程序的功能:)它在创建执行计划时负责where子句。因此,它将只执行“Testing”锻炼名称的子查询。@CaiusJard啊,太好了,我没想到它也会在交叉应用中执行。谢谢你的信息。(queryplan:)