SQL子查询还是内连接?

时间:2013-10-14 23:26:42

标签: sql sql-server

我正在构建一个新的Web应用程序,并对sql查询有了基本的了解,但我仍陷入这个特定的查询。

这是我将使用此查询的两个表。第一个表中的“followingID”指向第二个表的“id”。

dbo.T_FOLLOWING_GROUP
-id
-groupLookupID
-followingID
-order

dbo.FOLLOWING
-id
-userID
-followingID

我需要根据我的“userID”和“groupLookupID”的已知值获取dbo.FOLLOWING中的所有行。

这有足够的信息吗?我知道有办法

`SELECT * FROM dbo.FOLLOWING 
 WHERE (insert select subquery here)`

或者我需要使用哪种inner join

2 个答案:

答案 0 :(得分:1)

INNER JOIN

SELECT AnyTableName.AnyColumnName1, AnyTableName.AnyColumnName2, ..... --- out these two tables
    FROM dbo.T_FOLLOWING_GROUP INNER JOIN dbo.FOLLOWING
    ON dbo.T_FOLLOWING_GROUP.followingID = dbo.FOLLOWING.id

然后你可以在最后添加WHERE子句以进一步过滤结果集

在查询中

SELECT Column1, Column2, Column3, ...........
FROM dbo.T_FOLLOWING_GROUP
WHERE followingID IN (
                        SELECT DISTINCT id FROM dbo.FOLLOWING
                      )

答案 1 :(得分:0)

要在一个查询中使用所有内容(使用联接),请尝试以下操作:

SELECT f.* 
FROM dbo.FOLLOWING f 
LEFT JOIN dbo.T_FOLLOWING_GROUP fg on (f.id=fg.followingID)
WHERE f.userID=xxx AND fg.groupLookupID=yyy

(使用您已知的值代替xxx和yyy)。