我有两个表之间的多对多关系。我想按与第二个表的第一个关系对第一个表进行排序,并且只从该表返回一个结果。这是在 SQL Server 上。我想要这样的东西:
SELECT a.retrieve_me
FROM table_A AS a
JOIN table_B AS b ON a.foo = b.foo
JOIN table_C AS c ON b.bar = c.bar
ORDER BY c.sort_me
不幸的是,它返回MN(k)结果,其中M是“table_A”的计数,N(k)是单行k与“table_C”的关系数。为了让它只返回我想要的结果而不进行后过滤,我尝试DISTINCT
在SELECT
子句上使用和使用TOP(SELECT COUNT(*) FROM table_A)
,但两者都不是有效的语法。
有任何想法吗?希望我能让它尽可能高效。
编辑:
为了清楚起见
table A
------------
"joe" 1
"betty" 2
"george" 3
table B
------------
1 2
1 3
2 3
2 4
3 1
table C
------------
1 "ashton"
2 "harding"
3 "spring"
4 "merry lane"
我希望按“george”、“joe”和“betty”的顺序返回结果(乔治->阿什顿、乔->哈丁、贝蒂->快乐车道。)