diff --git a/synapse/storage/roommember.py b/synapse/storage/roommember.py
index 447c6364e71448f550b6fd6e98710aa6faf42258..e38bbd22a3b163da633708877cb12a138bf18ceb 100644
--- a/synapse/storage/roommember.py
+++ b/synapse/storage/roommember.py
@@ -507,9 +507,12 @@ class RoomMemberStore(SQLBaseStore):
             raise Exception("Invalid host name")
 
         sql = """
-            SELECT state_key FROM current_state_events
-            INNER JOIN room_memberships USING (room_id, event_id)
-            WHERE membership = 'join' AND room_id = ? AND state_key LIKE ?
+            SELECT state_key FROM current_state_events AS c
+            INNER JOIN room_memberships USING (event_id)
+            WHERE membership = 'join'
+                AND type = 'm.room.member'
+                AND c.room_id = ?
+                AND state_key LIKE ?
             LIMIT 1
         """