0

mySQL で解決策を見つけるのに問題があります。2 つのテーブルがあり、1 つにはイメージがあり、もう 1 つには投票と image_id があり、この行を使用してバインドします。

$sql = "SELECT `image`  FROM `sh_images`, `sh_votes` WHERE
`sh_images`.`id`=`sh_votes`.`image_id` ORDER BY `vote` DESC";

まだ投票されていない画像が表示されないことを除いて、すべてが正常に機能します。それで、あなたは私のための解決策を持っていますか?

4

2 に答える 2

2

これで使用する必要がありますLEFT JOIN

LEFT JOINとは異なりますINNER JOIN(これは、現在行っていることです)。結果のRightHand側のテーブルに一致するレコードがあるかどうかに関係なく、 LeftHand側LEFT JOINで定義されたすべてのレコードを表示します。

SELECT  image, vote  
FROM    sh_images 
        LEFT JOIN sh_votes 
            ON sh_images.id = sh_votes.image_id 
ORDER   BY vote DESC

結合についてさらに詳しく知りたい場合は、以下のリンクにアクセスしてください。

于 2013-03-29T09:48:59.777 に答える
1

もちろん、LEFT JOIN を使用してください。

SELECT image 
FROM sh_images
LEFT JOIN sh_votes ON sh_images.id=sh_votes.image_id 
ORDER BY vote DESC;

ところで、ストレート ジョインに構文を使用することを検討しINNER JOINてください。その方法でジョイン条件の欠落を防ぐ方が簡単です。

于 2013-03-29T09:50:24.467 に答える