需要使用sql查询根据表1中的出现结果导出表2中的出现次数

xcitsw88  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(594)

表1包含订单id、国家/地区id的详细信息

  1. table_ID order_id country_id
  2. 1 100 IN
  3. 2 200 USA
  4. 3 300 UK
  5. 4 400 IN
  6. 5 500 UK
  7. 6 600 UK
  8. 7 700 USA
  9. 8 800 USA
  10. 9 900 IN
  11. 10 1000 UK

表2包含装运标识、订单标识的详细信息

  1. Shipment_ID order_id
  2. 1 100
  3. 2 100
  4. 3 100
  5. 4 200
  6. 5 200
  7. 6 300
  8. 7 300
  9. 8 400
  10. 9 500
  11. 11 500
  12. 12 600
  13. 13 700
  14. 14 700
  15. 15 700
  16. 16 700
  17. 17 800
  18. 18 800
  19. 19 800
  20. 20 900
  21. 21 900
  22. 22 1000
  23. 23 1000
  24. 24 1000

我使用下面的查询来查找国家/地区的订单号列表

  1. select `order_id`
  2. from `Table_1`
  3. where `country_id` = 'IN';
  4. order_id
  5. 100
  6. 400
  7. 900

我需要指导来编写查询以查找将Map到“in”中的订单id的装运id的计数
所以订单号100有3批货,400有1批货,900有2批货
期望最终输出

  1. count_of_shipment_id
  2. 6
pwuypxnk

pwuypxnk1#

以下是您需要的查询:

  1. SELECT country_id, count(*) as count_of_shipment_id
  2. FROM Table_1 a
  3. inner join Table_2 b on a.`order_id` = b.`order_id`
  4. group by country_id

如果您只需要一个国家,您可以随时添加“where”或“having”来过滤结果。
在这里您可以看到您发布的示例:http://sqlfiddle.com/#!9/c90424/2号

相关问题