前景:因为此项目是一个好友聊天项目,目前有两张表:(1)用户表,(2)好友请求表
(1)用户表(users):
(2) 好友请求表(friends_request):
需求:连接两张表格,查找出好友请求表中接收者id为 '20012991PAGSBKWH'的发送者的id,username(用户名),face_image(用户头像),nickname(昵称)。
解决方案一般有两种:
(1)使用friends_request表左连接users表:
SELECT
sender.id as sendUserId,
sender.username as sendUsername,
sender.face_image as sendFaceImage,
sender.nickname as sendNickname
FROM
friends_request fr
LEFT JOIN
users sender
ON
fr.send_user_id = sender.id
WHERE
fr.accept_user_id = '20012991PAGSBKWH'
运行结果:
(2)使用friends_request外连接users表:
SELECT
users.id,users.username,users.face_image,users.nickname
FROM
friends_request ,users
WHERE
users.id = friends_request.send_user_id
AND
friends_request.accept_user_id = '20012991PAGSBKWH'
运行结果:
结论:
两种方式都可,但是具体选择哪种方案还是要取决于项目具体的案例,而且这也涉及到了数据库的底层知识,需要深入探讨。