我從你的描述中得到什麼
declare @tasks table
(
taskid int,
taskname varchar(20)
)
declare @locations table
(
locationid int,
taskid int,
locationname varchar(20)
)
insert into @tasks select 1, 'task1'
insert into @tasks select 2, 'task2'
insert into @tasks select 3, 'task3'
insert into @locations select 1, 1, 'location1'
insert into @locations select 2, 1, 'location2'
insert into @locations select 3, 1, 'location3'
insert into @locations select 4, 2, 'location4'
insert into @locations select 5, 2, 'location5'
insert into @locations select 6, 3, 'location6'
select t.taskid, t.taskname, l.locationid, l.locationname
from @tasks t inner join @locations l on t.taskid = l.taskid
where l.locationname in ('location1', 'location4') -- OR locationid
-- You can alos do this like
select t.taskid, t.taskname, l.locationid, l.locationname
from @tasks t inner join @locations l on t.taskid = l.taskid
where l.locationname in (select top 2 locationname from @locations order by locationid desc)
這可能工作... – Hamster 2010-09-22 22:13:55
即時通訊仍然想着更好的方式,但atm我沒有得到一個; - / – domiSchenk 2010-09-23 06:07:29