2010-09-26 55 views
1

我有两张桌子。一个是'用户'表。表中的每一行(用户)都有一个唯一的ID(主键)。选择外键指向特定主键的所有行?

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

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

回答

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' 
+0

什么任务。你正在使用的语法?对于你的第一个片段,你为什么要做“任务*”而不是“*”? – 2010-09-26 21:39:27

+0

@Bob - 我先写了第二个例子 – 2010-09-26 21:48:50

+0

我在问,因为我不明白语法。我对SQL很陌生。它与C#中的命名空间的工作方式相同吗? – 2010-09-26 22:41:21

2

你只是在寻找一个简单的过滤器? SELECT * FROM任务其中userid = 0

1

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

SELECT * 
FROM Tasks 
WHERE user_id = 1234