SQL查询由外键进行,需要通过不同的表和列中的值进行过滤

时间:2017-01-20 22:04:23

标签: sql

我有两张桌子X和Y:

  • X包含ID列(主键),Name
  • YX引用ID列的外键

我只能从输入中获取Name值。

我需要获取Y中与X

中找到的名称匹配的所有行

如何编写此SQL查询?

我已经通过了一些教程,我无法理解如何实现这一目标。任何帮助都会很棒。

谢谢

3 个答案:

答案 0 :(得分:0)

Select * 
from y 
left join x on x.id = y.xid 
where x.name = @nameparameter

上面的查询应该可以胜任。如果你愿意,我可以进一步解释。

答案 1 :(得分:0)

如果您只需要'y'的属性,请使用

select y.* from y join x on y.x = x.id where x.name = 'your desired name'.

答案 2 :(得分:0)

SELECT Y.[Id], Y.[Name]
FROM [dbo].[Y]
INNER JOIN [dbo].[X] ON [Y].ForeignKeyId = X.Id
WHERE X.Name LIKE '%YOUR_Query%'