admin

在mysql的同一张表中找到许多匹配到一行

sql

我的表是这个。

users_table:

 id | name | admin   | property_id
-----------------------------------
 1  | x    | 1       | 0
 2  | y    | 1       | 0
 3  | z    | 0       | 1
 4  | t    | 0       | 2
 4  | u    | 0       | 2
 4  | o    | 0       | 2

我有两个records这是admin和其他一些records它通过匹配属于这两个记录一个property_idid。最后,我想要的是admin行数据count及其properties。问题在于数据全部在同一表中。这应该是所需查询的输出。

  id | name | admin   | property_count
-----------------------------------
  1  | x    | 1       | 1
  2  | y    | 1       | 3

阅读 195

收藏
2021-07-01

共1个答案

admin

http://sqlfiddle.com/#!9/5ad1fb/4

SELECT u.*, COUNT(ut.id) property_count
FROM users_table u
LEFT JOIN users_table ut
ON u.id = ut.property_id
WHERE u.admin = 1
GROUP BY u.id, u.name, u.admin
2021-07-01