Mysql 选择好友提醒
所以问题是我的userid是USERID3,USERID2是我的朋友 因此,我想选择我的所有朋友MSG表警报 这是我的问题Mysql 选择好友提醒,mysql,sql,Mysql,Sql,所以问题是我的userid是USERID3,USERID2是我的朋友 因此,我想选择我的所有朋友MSG表警报 这是我的问题 I HAVE TABLE USER USERID NAME 1 JOHN DEO 2 JANE DEO 3 FRED DEO TABLE ALERTS ID USERID MSG 1 USERID3 HELLO 1 2 USERID1 HELLO 2 3
I HAVE TABLE USER
USERID NAME
1 JOHN DEO
2 JANE DEO
3 FRED DEO
TABLE ALERTS
ID USERID MSG
1 USERID3 HELLO 1
2 USERID1 HELLO 2
3 USERID3 HELLO 3
4 USERID2 HELLO 4
TABLE FRIENDS
ID USERID FRIEND
1 USERID3 USERID2
所以我想从我的朋友那里得到味精,我的朋友也得到我的味精
我们彼此共享消息您可以在操作符中的
之后的子查询中使用UNION ALL
:
SELECT msg
FROM alerts IN (SELECT
FROM friends
WHERE userid = 'USERID3' OR friend = 'USERID2')
如果我有很多朋友并且想去那里,那么使用这行选择friends FROM friends WHERE friend='USERID2',因为这似乎只选择了一个朋友,但问题并不像你在这里评论的那样,似乎你需要提供更多细节@moblatom友谊的确切标准是什么?我举了一个例子,如果我选择了一个朋友,但是假设我有多个朋友,那么这个查询可以检索到我朋友的所有消息吗?当然,如果声明了正确的条件,它可以检索到。您可以根据@moblatom的提示编辑问题
SELECT msg
FROM alerts
WHERE userid IN (SELECT friend FROM friends WHERE friend = 'USERID2'
UNION ALL
SELECT userid FROM friends WHERE userid = 'USERID3')