php - 用于获取好友列表的 SQL 查询

标签 php mysql

我需要 SQL 查询方面的帮助。

我有两张 table 。一种是用户,另一种是用户 friend

users table:
aid email                    firstname 
1   example@mail.com         example
2   example2@mail.com        example2
3   example3@mail.com        example3
4   example4@mail.com        example4

userfriends tables:
reqid     email                    friendemail               status 
1         example1@mail.com        example2@mail.com            1       (example1 is frnds with example2)
2         example2@mail.com        example4@mail.com            2       (example2 request pending)
3         example3@mail.com        example1@mail.com            1       (example1 is frnds with example3)
4         example4@mail.com        example1@mail.com            1       (example1 is frnds with example4)

因此,当状态为 2 时,添加请求处于待处理状态,而当状态为 1 时,他们是好友。我想要的是我想检索用户 example1 的完整好友列表。我想从用户表中提取名称,以获取先前查询的相应输出以显示为好友列表。

最佳答案

我认为你们忽略了这样一个事实:搜索的电子邮件可能位于任一列中:

select u.firstname
from userfriends f, users u where 
u.email='email@domain.com' and f.status=1 and
(u.email = f.email and f.friendsemail='email@domain.com')
or
(u.email = f.friendsemail and f.email='email@domain.com')

关于php - 用于获取好友列表的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13040594/

相关文章:

php - 在 PHP 7 中全局启用 'strict_types'

php - Laravel 性能

php - Symfony2 Twig 获取子实体的总计数

mysql - 两个 Unix_Timestamp 引用的区别

mysql - 无法在 Windows 7 上连接到本地主机 (10061) 上的 MySQL 服务器

mysql - MySQL 响应中结果数量不同

php - 如何从按日期存储在数组中的表中获取所有用户?

php - 如何在php中分割多维数组中的字符串

php - 使用 Laravel 和 Eloquent 根据兴趣查找建议

mysql - 如何使用 SQL Developer 从虚拟 PC 启用与 MySQL 数据库的连接