【发布时间】:2015-07-27 02:12:03
【问题描述】:
我有以下表格:
“价格”
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | mediumint(9) | NO | PRI | NULL | auto_increment |
| product_id | int(11) | YES | | NULL | |
| price | text | YES | | NULL | |
| date | text | YES | | NULL | |
| time | text | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
“产品”
+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| id | mediumint(9) | NO | PRI | NULL | auto_increment |
| category_id | int(11) | YES | | NULL | |
| product_urls | text | YES | | NULL | |
| product_title | text | YES | | NULL | |
| product_image | text | YES | | NULL | |
| product_content | text | YES | | NULL | |
+-----------------+--------------+------+-----+---------+----------------+
这里的连接在Products.id和Prices.products_id之间。
我有一个脚本正在运行,它抓取 URL,从特定网页中抓取价格,然后每小时更新一次“价格”表。
我想显示以下内容,最好使用一个数据库查询:
- products.product_title
- products.product_image
- prices.price(当前价格,即每个产品 ID 的最后插入)
- 今天的平均价格和昨天的平均价格之间的百分比差异
- 当月均价与上月均价的百分比差异
我可以分开做这些事情,但我不能把它们放在一个查询中。
为了清楚起见,我想一次获取特定类别中的所有产品 - 考虑到这一点,我一直在这样做:
...WHERE category_id=%s...GROUP BY product_id...
我正在直接编写我的 SQL,特别是使用 MySQLdb Python 库。
【问题讨论】:
-
-
是时候了解数据类型了。使用 DATETIME 表示日期时间,使用 DECIMAL 表示价格,(可能)使用 VARCHAR 和 INT 表示其他所有内容
-
@Cosmin 你能举一些例子吗?
-
@strawberry 有什么好处,内存分配?
-
主要是优化。
标签: mysql sql mysql-python