【发布时间】:2013-02-12 10:17:29
【问题描述】:
我正在开发一个社交网站。我有一个名为 alerts 的选项,它显示待处理的好友请求和未读消息。我的查询如下:
SELECT
sk_friends.frndship_from_user_id,
sk_messages.msg_from_user_id,
sk_messages.msg_text,
sk_messages.msg_date
FROM
sk_friends INNER JOIN sk_messages
WHERE
sk_messages.msg_to_user_id = '$user_id'
AND sk_friends.frndship_to_user_id ='$user_id'
AND sk_friends.frndship_status = 'pending'
AND sk_messages.msg_status='unread'
ORDER BY
sk_friends.fndship_date ASC,
sk_messages.msg_date ASC;
- sk_friends 和 ak_messages 是表。
- msg_from_user_id 是发件人的id
- frndship_from_user_id 是发送请求的用户 ID
- $user_id 是登录用户的id
每行数据出现两次。我不知道为什么会这样。
【问题讨论】:
-
能发个小号fiddle解释一下吗?
-
您在连接查询中错过了 ON 语句。检查dev.mysql.com/doc/refman/5.0/en/join.html 以应用内连接。
-
在查询的 JOIN 段中使用“ON”代替“WHERE”。
标签: php mysql inner-join