1

我正在构建一个新的 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我需要使用的吗?

4

2 回答 2

1

内部联接

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
                      )
于 2013-10-14T23:39:09.407 回答
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)。

于 2013-10-14T23:48:11.677 回答