php - MySQL - 复杂查询问题,多个表

标签 php mysql sql select join

我在想出我需要创建的 SQL 语句时遇到了一些麻烦。

我有两张 table

friend

===================================
friendfromid | friendtoid | request
===================================

用户

=================
userid | username
=================

我需要获取我 friend 的每个用户的用户 ID 和用户名。

我的 id 是在 friendfromid 还是 friendtoid 中,这取决于我是被用户请求还是用户请求我。

所以基本上需要发生的是脚本需要查看 friends 表,获取我的 id 是 friendfromid 或 friendtoid 的所有行检查请求字段是否设置为 1,获取匹配的所有行然后获取不是我的每个 friendfromid 或 friendtoid 的 ID 和用户名。

例如,如果我的 id 是 8 而 friend id 是 9,假设他们要求我他们的 id 将在 friendfromid 字段中,而我的 id 将在 friendtoid 字段中,这意味着脚本将采用他们的 id ( 9) 并将其与用户表中的该用户匹配。

最佳答案

这将给出带有好友 ID 和好友名称的好友列表:

SELECT  u.userid , u.username
FROM Friends f 
JOIN Users u 
ON (( f.friendfromid ={the ID} AND friendtoid=u.userid)
OR ( f.friendtoid = {the ID}  AND friendfromid=u.userid))
WHERE f.request = 1

输入{the ID}=需要好友列表的用户id。

关于php - MySQL - 复杂查询问题,多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8830065/

相关文章:

php - index.php YII 中的 ERR_TOO_MANY_REDIRECTS

mysql - 表数据计数最大值

sql - 为什么 OS X 会终止在终端中立即执行的进程?

mysql - SELECT * JOIN ON 主键 = 外键操作中的重复列?

php - 路线 :list - 404 error on oauth/token 中缺少 Laravel Passport 路线

php - CI Active record,从多个表中选择记录

php - SQL查询三个不同的表

mysql - 按本地化日期分组

PHP/MySQL : Declare variables using array elements from MySQL Query

sql - Oracle - 查询大型数据集需要很长时间 - 有没有办法优化它?