php - 按投票排序 DESC 但未投票不显示

标签 php mysql sql select join

我在 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/

相关文章:

php - 当 Code Igniter 中没有更新时,如何测试我的 MySQL 更新查询是否成功?

php - CodeIgniter 和 Google 图表 - 基于 mysql 值的下拉列表

php - 像 shell_exec ("echo %username%"之类的查询)不起作用

sql - 在 SQL 中计算每个类别产品的数量

MySQL:根据另一个查询的结果限制查询中每个组的结果数量

php - 如何使用 logrotate 在 Laravel 中旋转日志?

javascript - 将变量从一页传输到另一页

MySQL 8 - 在 JSON_ARRAYAGG 中排序和过滤

mysql - 在 MySQL 中订购发票号码和字母

java - 使用 select 和 update 更新 double 类型的列