我正在开发一个社交网站。我有一个名为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;
每行数据出现两次。我不知道为什么会这样。
答案 0 :(得分:4)
您的内部联接没有ON子句。尝试添加一个,这应该删除双重结果。
答案 1 :(得分:0)
试试这个:
SELECT
sf.frndship_from_user_id,
sm.msg_from_user_id,
sm.msg_text,sm.msg_date
FROM
sk_friends sf ,
sk_messages sm
WHERE
sm.msg_to_user_id = sf.frndship_to_user_id AND
sm.msg_to_user_id = '$user_id' AND
sf.frndship_status = 'pending' AND
sm.msg_status='unread'
ORDER BY
sf.fndship_date ASC,sm.msg_date ASC;