我在 mySQL 中找到解决方案时遇到了一些麻烦,我有 2 个表,其中一个表中有我的图像,另一个表中有我的投票和 image_id,我使用此行将它们绑定(bind)在一起:
$sql = "SELECT `image` FROM `sh_images`, `sh_votes` WHERE
`sh_images`.`id`=`sh_votes`.`image_id` ORDER BY `vote` DESC";
除了尚未投票的图像未显示外,一切正常。那你有解决办法吗?
最佳答案
您应该对此使用 LEFT JOIN
。
LEFT JOIN
不同于 INNER JOIN
(您现在正在做的事情)。 LEFT JOIN
显示在LeftHand side 上定义的所有记录,无论它在结果的RightHand side 表中是否有匹配记录。
SELECT image, vote
FROM sh_images
LEFT JOIN sh_votes
ON sh_images.id = sh_votes.image_id
ORDER BY vote DESC
要进一步了解有关联接的更多信息,请访问以下链接:
关于php - 按投票排序 DESC 但未投票不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15700850/