我正在构建一个新的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
?
答案 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)。