如何获取MySQL中的total items in join

tzdcorbm  于 2024-01-05  发布在  Mysql
关注(0)|答案(1)|浏览(135)

MySQL中有3个表。
表:广告

  1. +-------------------------------------------+--------------+------+-----+---------------------+----------------+
  2. | Field | Type | Null | Key | Default | Extra |
  3. +-------------------------------------------+--------------+------+-----+---------------------+----------------+
  4. | Ad_Id | int(11) | NO | PRI | NULL | auto_increment |
  5. | User_Id | int(11) | NO | MUL | NULL | |
  6. | Location_Id | int(11) | NO | MUL | NULL | |
  7. | Ad_Date | timestamp | NO | MUL | current_timestamp() | |
  8. | Ad_Title | varchar(255) | NO | MUL | NULL | |
  9. | Ad_Content | mediumtext | NO | MUL | NULL | |
  10. | Ad_Deleted | tinyint(1) | NO | | 0 | |
  11. +-------------------------------------------+--------------+------+-----+---------------------+----------------+

字符串
表:州

  1. +----------------------+-------------+------+-----+---------+----------------+
  2. | Field | Type | Null | Key | Default | Extra |
  3. +----------------------+-------------+------+-----+---------+----------------+
  4. | State_Id | int(11) | NO | PRI | NULL | auto_increment |
  5. | Country_Id | int(11) | NO | MUL | NULL | |
  6. | State_Name | varchar(45) | NO | | NULL | |
  7. +----------------------+-------------+------+-----+---------+----------------+


表:位置

  1. +---------------+--------------+------+-----+---------+----------------+
  2. | Field | Type | Null | Key | Default | Extra |
  3. +---------------+--------------+------+-----+---------+----------------+
  4. | Location_Id | int(11) | NO | PRI | NULL | auto_increment |
  5. | State_Id | int(11) | NO | MUL | NULL | |
  6. | Location_Name | varchar(255) | NO | | NULL | |
  7. +---------------+--------------+------+-----+---------+----------------+


我有这个问题:

  1. SELECT Anuncios.Ad_Id, Estado.State_Name, Municipio.Location_Name
  2. FROM Ad AS Anuncios JOIN Location AS Municipio
  3. ON Anuncios.Location_Id = Municipio.Location_Id
  4. JOIN State AS Estado ON Municipio.State_Id = Estado.State_Id
  5. WHERE Anuncios.Ad_Deleted = 0 AND Anuncios.User_Id = 600005;


我的结果是:

  1. +---------+------------+-------------------------------+
  2. | Ad_Id | State_Name | Location_Name |
  3. +---------+------------+-------------------------------+
  4. | 2 | Jalisco | Guadalajara |
  5. | 2 | Jalisco | Tlaquepaque |
  6. | 2 | Jalisco | Tonal? |
  7. | 2 | Jalisco | Guadalajara |
  8. | 2 | Jalisco | Zapopan |
  9. | 2 | Jalisco | Guadalajara |
  10. | 2 | Jalisco | El Salto |
  11. | 2 | Jalisco | Tlaquepaque |
  12. | 2 | Jalisco | Guadalajara |
  13. | 2 | Jalisco | Chapala |
  14. | 2 | Jalisco | Cocula |
  15. | 2 | Jalisco | Tonal? |
  16. | 2 | Jalisco | Tlaquepaque |
  17. | 2 | Jalisco | Zapopan |
  18. | 2 | Jalisco | Guadalajara |
  19. .....
  20. +---------+------------+-------------------------------+


但是我不需要这个,我只需要关于Location_Name(Municipio)的计数,例如:

  1. Guadalajara 48
  2. Zapopan 10
  3. Tlaquepaque 7
  4. ....


如何得到这个结果?(我改变了User_Id和Ad_Id的职位)
谢谢你,我是MySQL新手:}

f0ofjuux

f0ofjuux1#

看起来像一个简单的GROUP BYCOUNT(*)查询

  1. SELECT
  2. m.Location_Name,
  3. COUNT(*) AS count
  4. FROM Ad AS a
  5. JOIN Location AS Municipio ON a.Location_Id = m.Location_Id
  6. WHERE a.Ad_Deleted = 0
  7. AND a.User_Id = 600005
  8. GROUP BY
  9. m.Locaton_Id,
  10. m.Location_Name;

字符串

相关问题