Php 如何从表X中选择与表Y共享关系最少的行?
假设我们有下面两张表Php 如何从表X中选择与表Y共享关系最少的行?,php,mysql,sql,Php,Mysql,Sql,假设我们有下面两张表 TABLE: PEOPLE +----+------+ | id | name | +----+------+ | 1 | john | +----+------+ | 2 | mike | +----+------+ | 3 | derp | +----+------+ TABLE: Images +----+-----------+----------+ | id | person_id | image | +----+-----------+------
TABLE: PEOPLE
+----+------+
| id | name |
+----+------+
| 1 | john |
+----+------+
| 2 | mike |
+----+------+
| 3 | derp |
+----+------+
TABLE: Images
+----+-----------+----------+
| id | person_id | image |
+----+-----------+----------+
| 1 | 3 | img1.jpg |
+----+-----------+----------+
| 2 | 3 | img2.jpg |
+----+-----------+----------+
| 3 | 2 | img3.jpg |
+----+-----------+----------+
我需要一个查询,从people
表中选择所有人,并按images表中图像最少的人对他们进行ASC排序
因此,返回行的顺序为
John
Mike
Derp
对images表进行外部联接,然后计算每个用户的非空图像ID数
SELECT p.id,
p.name,
COUNT(i.id) AS image_count
FROM PEOPLE p
LEFT OUTER JOIN Images i
ON p.id = i.person_id
GROUP BY p.id,
p.name
ORDER BY COUNT(i.id);
(。对images表进行外部联接,然后计算每个用户的非空图像ID数
SELECT p.id,
p.name,
COUNT(i.id) AS image_count
FROM PEOPLE p
LEFT OUTER JOIN Images i
ON p.id = i.person_id
GROUP BY p.id,
p.name
ORDER BY COUNT(i.id);
()