2017-02-10 3 views
0

У меня есть две таблицы:Объединение двух таблиц с Conditon

users 
- id 
- fname 
- lname 
- is_online 

и:

friendships 
- friendA (references users) 
- friendB (references users) 
- status (1 means they are friends) 

Я хочу запросить всех друзей данного пользователя, которые находятся на сайте.

+0

Выборочные данные и желаемые результаты действительно помогают передать то, что вы хотите сделать. И если вы изучаете SQL, вы должны включить свою попытку ответить на вопрос. –

+0

Попробовать INNER JOIN Query –

+0

SELECT T1.fanme, T2freindA, FROM Table1 T1 INNER JOIN Таблица2 T2 ON T1.id = T2.id WHERE T1.IS_ONLINE = 1 –

ответ

0
SELECT 
t1.* 
FROM users t1 
WHERE 
t1.id IN (
    SELECT 
    friendB 
    FROM friendships 
    WHERE 
    friendA = CURRENT_USER_ID 
    UNION 
    SELECT 
    friendA 
    FROM friendships 
    WHERE 
    friendB = CURRENT_USER_ID 
) 
t1.is_online = 1 
AND NOT t1.id = CURRENT_USER_ID 
0
Select 
    Unique(id) 
from 
    users outer join 
    friendships where 
     ((friendA = id and friendB = ID_TO_QUERY) or 
     (friendA = ID_TO_QUERY and friendB = id) and status = 1) 
     and is_online = true 
     and id /= ID_TO_QUERY 
+0

Просьба отформатировать ваш запрос и использовать форматирование кода. – Barmar

Смежные вопросы