首页 > 解决方案 > 哪些车一起租了多少次?MySQL和python哪个更容易做?

问题描述

我有一个关于 github 的项目,但我代表喜欢租一个汽车数据库以便更好地理解。我必须找出从db一起租了多少次汽车。我有两张桌子:租金和汽车。

Rent Table
+----+---------+
| id | date    |
+----+---------+
| 68 | 2010    |
| 2  | 2011    |
| 7  | 2012    |
+----+---------+
Car Table
+---------+---------+-------+
| model   | rent_ID | km    |
+---------+---------+-------+
| kia     | 68      | 4343  |
| bmw     | 68      | 7679  |
| kia     | 2       |  8464 |
| hyundai | 2       | 1234  |
| bmw     | 2       | 9004  |
| kia     | 7       | 11001 |
| hyundai | 7       | 7654  |
+---------+---------+-------+

我想喜欢这种类型的回报

+-------+-------------+------+
| model | model       |count |
+-------+-------------+------+
| kia   | bmw         | 2    |
| kia   | hyundai     | 2    |
| bmw   | hyundai     | 1    |
+-------+-------------+------+

我尝试了一些查询来找到这个,但我不能。另外,我想我可以用python中的多维数组来做到这一点。但是如果我有很多车,那可能需要很多时间。哪种方式更好和最优?

标签: pythonmysqlsql

解决方案


这在 MySQL 中很简单。要获取任何一对模型的计数,请使用自联接和聚合:

select c1.model, c2.model, count(*)
from car c1 join
     car c2
     on c1.rent_id = c2.rent_id and
        c1.model < c2.model
group by c1.model, c2.model;

推荐阅读