我有两个表:连接两个表与conditon
users
- id
- fname
- lname
- is_online
和:
friendships
- friendA (references users)
- friendB (references users)
- status (1 means they are friends)
我想查询一个给定的用户谁是网上的所有朋友。
我有两个表:连接两个表与conditon
users
- id
- fname
- lname
- is_online
和:
friendships
- friendA (references users)
- friendB (references users)
- status (1 means they are friends)
我想查询一个给定的用户谁是网上的所有朋友。
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
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
请仔细地缩进您的查询,并使用代码格式。 – Barmar
样本数据和预期的结果真正帮助传达你想要做什么。如果你正在学习SQL,你应该包括你试图回答这个问题。 –
尝试INNER JOIN查询 –
SELECT T1.fanme,T2freindA,FROM Table1 T1 INNER JOIN Table2 T2 ON T1.id = T2.id WHERE T1.IS_ONLINE = 1 –