我正在尝试将 3 个表连接在一起以显示users
从表中获取的表列表,subscribers
其中它们的 IP =表中的 IP online
。
subscribers
表:(不允许重复,type
告诉其他用户是否被订阅。)
sender recipient
1 5
5 3
users
桌子:
id loginip
1 192.168.0.1
3 192.168.0.2
5 192.168.0.3
online
桌子:
ip
192.168.0.1
192.168.0.2
192.168.0.5
所以查询应该抓取's ,id
找到's然后扫描表并返回在线用户:(假设UserID = 5)loginip
id
online
sender recipient send_ip reci_ip
5 3 192.168.0.3 192.168.0.2
1 5 192.168.0.1 192.168.0.3
如果用户= 5,我还需要找出一种切断IP的方法,这样它就不会在列表中显示自己。在你们中的一个好人帮助我之后,我可能会自己做到这一点。:)
我的尝试,虽然很差:
SELECT f.sender as friend1,
f.recipient as friend2,
u1.loginip ip1,
u2.loginip ip2
FROM subscribers f
INNER JOIN users u1 ON u1.id = f.sender
INNER JOIN users u2 ON u2.id = f.recipient
INNER JOIN online o1 ON o1.ip = u1.loginip
INNER JOIN online o2 ON o2.ip = u2.loginip
WHERE
f.sender = 5 OR
f.recipient = 5;
谢谢你。
更新:我一定很累,因为它突然起作用了?我很抱歉。