【发布时间】:2012-01-11 16:34:44
【问题描述】:
如何使用 MySQL 来计算 LEFT JOIN?
我有两个表,有时 Ratings 表没有照片的评分,所以我认为需要 LEFT JOIN 但我也有一个 COUNT 语句..
照片
id name src
1 car bmw.jpg
2 bike baracuda.jpg
Loves(picid 是带有照片 id 的外键)
id picid ratersip
4 1 81.0.0.0
6 1 84.0.0.0
7 2 81.0.0.0
在这里,用户只能使用他们的 IP 对一张图片进行评分。
我想按评分最高的顺序组合这两个表。新表
合并
id name src picid
1 car bmw.jpg 1
2 bike baracuda.jpg 2
(宝马评分最高)
我的 MySQL 代码:
SELECT * FROM photos
LEFT JOIN ON photos.id=loves.picid
ORDER BY COUNT (picid);
我的 PHP 代码:(已更新和添加 - 工作示例...)
$sqlcount = "SELECT p . *
FROM `pics` p
LEFT JOIN (
SELECT `loves`.`picid`, count( 1 ) AS piccount
FROM `loves`
GROUP BY `loves`.`picid`
)l ON p.`id` = l.`picid`
ORDER BY coalesce( l.piccount, 0 ) DESC";
$pics = mysql_query($sqlcount);
【问题讨论】:
-
谢谢大家。上面的解决方案。
-
@TheBlackBenzKid 请不将您的答案添加到问题中......要么创建一个新答案并在评论中引用它,要么不要这样做所有...