1
我有下面这些表的匹配的父..(我省略了可读性其他不必要的列)选择所有子表ID为孩子
队 - TeamID,TeamName
TeamMembers - TeamMemberID,TeamID ,成员名称
BoothVisitLog - BoothVisitLogID,BoothID,访问了(MEMBERID)
对于例如假设ID为1的团队成员访问了BoothID 1.现在我想查看是否有任何同一团队的成员访问了该展位。
我写了下面的查询哪些工作正常。但我更倾向于编写更好的优化查询,而不是使用子查询。有什么方法可以使用连接实现相同?
SELECT * FROM BoothVisitLog BVL INNER JOIN
(
SELECT TM.MemberID FROM TeamMembers TM
INNER JOIN Teams T ON TM.TeamID = T.TeamID
WHERE T.TeamID IN
(
SELECT TM.MemberID FROM TeamMembers TM
INNER JOIN Teams T ON TM.TeamID = T.TeamID
WHERE TM.MemberID = 1
)
) TTM ON BVL.VisitedBy = TTM.MemberID AND BVL.BoothID = 1