$sql = "SELECT pic, userid
FROM user_details
INNER JOIN wp_users ON user_details.userid
WHERE wp_users.id = user_details.userid
LIMIT $recordstart, $pagesize
";
该查询用于从user_details和wp_users中选择记录,但只应选择是否存在匹配(wp_users.id = user_details.userid).
目标是在从另一个表中检索记录(基于id匹配)时基本上从表中进行选择
解决方法:
你应该在ON之后放入你的JOIN条件.像这样:
$sql="select pic, userid
from user_details
inner join wp_users on (wp_users.id=user_details.userid)
limit $recordstart, $pagesize";
但真正的问题是,对于wp_users中的每个相应记录,你在user_details中有超过1条记录(反之亦然).
INNER JOIN导致数据库生成Cartesian product的user_details和wp_users记录.然后,结果表将按当前的WHERE条件(wp_users.id = user_details.userid)进行过滤.取决于您的需求,如果您只想检索唯一记录,可以使用GROUP BY或disTINCT.
例如,如果您需要userid是唯一的:
$sql="select pic, userid
from user_details
inner join wp_users on (wp_users.id=user_details.userid)
group by userid
limit $recordstart, $pagesize";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。