来自 3 个表的 MySQL 查询(计数)

标签 mysql

我有 3 个表。

Mark
id_mark
mark_name

example record:
1, 'Ford'
2, 'Fiat'

Model
id_model
id_mark
mondel_name

example record:
1, 1, 'Focus'
2, 2, 'Panda'

Adds
id_adds
id_model
name
price
etc.

example records:
1 1 'My ad', 20000
2 1 'My ad2', 30000
3 2 'My ad3', 30000

如何执行返回结果(Mark Adds Count)的查询示例:

    Ford 2
    Fiat 1

2 and 1 count

最佳答案

您需要两个连接。我已将第二个指定为 LEFT OUTER JOIN,这样它可能会为没有关联广告的品牌返回 0。 Mark 通过 Model 连接到 Adds

SELECT
  mark_name,
  COUNT(id_adds) AS num_ads
FROM
  Mark JOIN Model ON Mark.id_mark = Model.id_mark
  LEFT OUTER JOIN Adds ON Model.id_model = Adds.id_model
GROUP BY mark_name

关于来自 3 个表的 MySQL 查询(计数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8467407/

相关文章:

mysql - 根据ID更新表中的列并一次更新一行

使用 sql dump 克隆数据库时出现 MYSQL 错误 - 错误 1359 (HY000) : Trigger already exists

php - 如何使用mysql计算满足两个条件的列的所有值?

python - 在 python 中创建一个数据库,其中包含一个具有不同字段的表

php - 帮助使用 MySQL 和 PHP 上传视频

MySQL 删除 SELECT 上的重复行数据

php - 如何将数据插入一个表并获取主键作为外键插入另一个表?

mysql - SQL:计算一个表的某个字段到同表的另一个字段的重复次数

c# - LINQ 组不工作

mysql - 如何手动更新 MySQL 表的索引?