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);
()