假设我有两个表:catu collection和catu mapping
cat_映射包含三个字段:id、collection_id和post_id
我希望能够从猫收集中选择所有的名字

SELECT name FROM cat_collection

以及它们在catu映射中被引用的次数
所以如果猫的藏品
| id |   | name |
  0        cat1
  1        cat2

以及包含的cat U映射
| id |   | collection_id |   | post_id |
  0              1               0
  1              1               1

我怎么能回来
| name |   | count |
  cat1        0
  cat2        2

解决方案
SELECT cc.name, (

SELECT COUNT( cm.collection_id )
FROM cat_mapping AS cm
WHERE cm.collection_id = cc.id
) AS `count`
FROM cat_collection AS cc

最佳答案

我想这样的子查询可以做到:

SELECT cc.name, (SELECT COUNT(cm.id) FROM cat_mapping cm WHERE cm.collection_id = cc.id) AS cnt
FROM cat_collection cc

关于mysql - mysql返回一个值及其从映射表中引用的次数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7829524/

10-11 17:16