2016-12-17 3 views
1

Я пытаюсь получить общих друзей в новом проекте моего друга. Есть два разных запроса, и нам нужно объединить их с INNER JOIN.Объединение двух SQL-запросов с INNER JOIN

Как объединить эти два запроса, чтобы получить общих друзей в проекте?

спасибо.

Запрос # 1:

SELECT * 
FROM [Register] 
WHERE RegisterId IN (SELECT MyId 
        FROM Friends 
        WHERE FriendId='" + Session["CurrentProfileId"] + "' 
         AND Status = 1 
        UNION 
        SELECT FriendId 
        FROM Friends 
        WHERE MyId='" + Session["CurrentProfileId"] + "' 
         AND Status = 1) 

Запрос # 2:

SELECT * 
FROM [Register] 
WHERE RegisterId IN (SELECT MyId 
        FROM Friends 
        WHERE FriendId='" + Session["CurrentProfileId"] + "' 
         AND Status = 1 
        UNION 
        SELECT FriendId 
        FROM Friends 
        WHERE MyId='" + Session["CurrentProfileId"] + "' 
         AND Status = 1 
         AND '" + Session["UserId"] + "' != '" + Session["CurrentProfileId"] + "') 

Related Link

+0

Примеры данных и желаемых результатов гораздо полезнее, чем просто «комбинировать». –

+0

Я просто поделился «Связанной ссылкой» в конце текста. Конструкция БД показана в этой ссылке. Пожалуйста помогите нам. Благодарю. –

ответ

0

Я не понимаю, в чем разница между сессии [USERID] и сессии [CurrentProfileId] , Предположим, вы хотите получить список пользователей, которые являются друзьями определенного пользователя @USER_ID, ОК?

SELECT r.RegisterId,r.Name 
FROM Register r 
    JOIN Friends f ON f.MyId=r.RegisterId and f.Status=1 
WHERE [email protected]_ID 
UNION 
SELECT r.RegisterId,r.Name 
FROM Register r 
    JOIN Friends f ON f.FriendId=r.RegisterId and f.Status=1 
WHERE [email protected]_ID 
+0

В чем разница между этим запросом и «Запросом № 2»? –