加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – MySQL三表加入 – 用户和朋友的图片

发布时间:2020-12-13 16:19:52 所属栏目:PHP教程 来源:网络整理
导读:已经尝试了几个小时 – 不幸的是我坚持这个三桌加入. 问题是我可以检索用户朋友的所有照片.但我想要朋友的照片和用户的照片.但是,我不确定这个的语法. 这是我的表结构: active_users: id,username,name,etc...friends: relationship_id (PK),friend1_ID (FK
已经尝试了几个小时 – 不幸的是我坚持这个三桌加入.

问题是我可以检索用户朋友的所有照片.但我想要朋友的照片和用户的照片.但是,我不确定这个的语法.

这是我的表结构:

active_users: id,username,name,etc...
friends: relationship_id (PK),friend1_ID (FK),friend2_ID (FK),status
pictures: picture_id (PK),user_id (FK),date,etc.

所以这是我目前要获取用户朋友照片的声明:

SELECT p.*,a.username
FROM friends f
JOIN active_users a ON (f.friend_1ID='$userID' AND f.friend_2ID=a.id AND status=1)
JOIN pictures p ON (p.user_id=f.friend_2ID)

我该如何修改它以包含用户的照片?我可以用UNION来做,但我相信(或者有人告诉过)如果通过用户输入有一种方法,这是昂贵的并且容易发生SQL攻击.

我还打算将用户添加为自己的朋友 – 这是否可以接受?

解决方法

您可以修改联接以加入朋友或用户:

SELECT p.*,IF(p.user_id = friend_2ID,a.username,'$username')
FROM friends f
JOIN active_users a ON (f.friend_1ID='$userID' AND f.friend_2ID=a.id AND status=1)
JOIN pictures p ON (p.user_id=f.friend_2ID OR p.user_id = '$userID')
GROUP BY p.photo_id

请注意,您应该确保$userID被转义,或者甚至更好地使用参数化查询.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读