mysql 从相关表中计数字段

zf2sa74q  于 2023-11-16  发布在  Mysql
关注(0)|答案(1)|浏览(156)

有三个表是相互关联的,我想统计 customers.userid,但三个表都不重复,但每次都卡住了。
这些是我的table:
客户表:
| ID(FOREIGN KEY)|userId| fname|
| --|--|--|
| 1 | 12 |一|
| 2 | 12 |B|
| 3 | 13 |C|
| 4 | 14 |D|
| 5 | 14 |e|
| 6 | 15 |F|
| 7 | 15 |G|
客户类别表:
| 客户ID(FOREIGN KEY)|Catid(FOREIGN KEY)|
| --|--|
| 1 | 99 |
| 2 | 99 |
| 3 | 100 |
| 4 | 101 |
| 5 | 101 |
| 6 | 101 |
| 7 | 101 |
类别表:
| ID|太平洋岛屿|名称|
| --|--|--|
| 1 | 99 |一|
| 2 | 99 |B|
| 3 | 100 |C|
| 4 | 101 |D|
| 5 | 101 |e|
| 6 | 101 |F|
| 7 | 101 |G|
除了我的代码的第一行2,其余的工作正常,结果是:
https://i.stack.imgur.com/bF1Re.jpg
但当我添加 * 选择DISTINCT的客户.userid从 * mysql给出错误1064.我的代码是:

  1. select DISTINCT COUNT sub2.userid
  2. FROM (
  3. SELECT sub2.pcatid, customers.userid
  4. FROM (
  5. SELECT Subquery.id, categories.pcatid ,categories.name
  6. FROM (
  7. SELECT customers.id, customerscategories.catid
  8. FROM customers
  9. INNER JOIN customerscategories on customers.id=customerscategories.adid
  10. ) as Subquery
  11. INNER JOIN categories on Subquery.catid = categories.id
  12. ) as sub2
  13. INNER JOIN customers on sub2.id = customers.id)
  14. WHERE sub2.pcatid=101;

字符串
我希望这个计数:2

qgzx9mmu

qgzx9mmu1#

计数的最小值为:
Count(expression
所以你的代码应该是:

  1. select count(DISTINCT customers.userid) FROM ....

字符串
希望这对你有帮助。

相关问题