我在mySQL中找到一個解決方案時遇到了一些問題,我有兩個表,其中有一個我有我的圖像,另一個我有我的投票和我綁定在一起的image_id使用此行:按票數排序DESC但未投票不顯示
$sql = "SELECT `image` FROM `sh_images`, `sh_votes` WHERE
`sh_images`.`id`=`sh_votes`.`image_id` ORDER BY `vote` DESC";
一切正常,只是還未被評爲圖像不顯示的罰款。那麼你有解決方案嗎?
我在mySQL中找到一個解決方案時遇到了一些問題,我有兩個表,其中有一個我有我的圖像,另一個我有我的投票和我綁定在一起的image_id使用此行:按票數排序DESC但未投票不顯示
$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端定義的所有記錄是否在RightHand端表上有匹配記錄或沒有結果。
SELECT image, vote
FROM sh_images
LEFT JOIN sh_votes
ON sh_images.id = sh_votes.image_id
ORDER BY vote DESC
爲了進一步獲得更多的知識有關加入,請訪問以下鏈接:
當然,只要使用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
語法,這樣更容易防止缺少連接條件。
@Strawberry,你的回滾沒有意義。代碼應該在代碼塊中,而不是blockquotes,並且[「Thanks in advantage」](http://meta.stackoverflow.com/questions/288160/no-thanks-damn-it),以及不正確的英語,應該被刪除。 – gunr2171
@ gunr2171這是我反對你的考古本能的方式 - 但繼續下去。 – Strawberry