选择外键指向特定主键的所有行?

时间:2010-09-26 20:45:03

标签: sql sql-server-express

我有两张桌子。一个是'用户'表。表中的每一行(用户)都有一个唯一的id(主键)。

第二个表是“任务”表。 Tasks表中的每一行都有一个外键,指向拥有该任务的用户(在Users表中)。

使用SQL Express 2008,我必须使用什么查询来获取分配给用户的所有任务的列表?例如,如果我在Users表中有一个主键为0的用户,并且在Tasks表中有10行,外键值为0,则表示该用户有10个任务分配给他。我需要构建一个查询,从Tasks表中提供这10行。

3 个答案:

答案 0 :(得分:4)

如果您有用户PK

select tasks.*
from tasks 
where tasks.UserId = 0

如果您有用户名

select tasks.*
from tasks 
inner join users on users.UserId = tasks.UserId
where users.UserName =  'Bob'

答案 1 :(得分:2)

您只是在寻找一个简单的过滤器吗?     SELECT * FROM tasks WHERE userid = 0

答案 2 :(得分:1)

我认为你可以用一个简单的单表选择来实现你想要的,假设你知道用户的id:

SELECT *
FROM Tasks
WHERE user_id = 1234