从数据库中提取

时间:2015-04-04 02:12:08

标签: python sql

我有一个我需要从中提取的数据库。该数据库包含以下表格:

商店
YELP商业列表,包括姓名,电话号码等 还有locationid

位置
包含名称(伦敦,纽约),locationID,parentid
ParentID允许表格在层次结构中。

EG。纽约州和纽约市可能有一个位置 在这种情况下,NYC的parentid将成为纽约州的对象。

分类
 类别具有id和名称
例如。汽车经销商,船舶经销商)

ShopCategories
每个企业都有多个BusinessCategories
包含businessid和categoriesid。

然后,我们会根据位置和业务类别提供大量搜索结果页。

例如。

纽约市所有商业类别
纽约市船舶经销商
纽约市汽车经销商
纽约州所有商业类别
纽约州船舶经销商
纽约州汽车经销商

注意:搜索结果将显示该位置和任何子位置的商家 示例:纽约州将展示在纽约市上市的业务。

我需要编写一个python脚本,让我知道2个搜索结果页面是否列出了相同的业务。

示例:如果纽约州的所有船舶经销商都存在于纽约市内,那么这两页都是:

纽约州船舶经销商
纽约市船舶经销商

列出相同的业务。

我需要一些关于如何有效解决的一般建议

mysql> DESC categories;
+--------------+------------------+------+-----+-------------------+-----------------------------+
| Field        | Type             | Null | Key | Default           | Extra                       |   
+--------------+------------------+------+-----+-------------------+-----------------------------+
| CategoryID   | int(10) unsigned | NO   | PRI | NULL              | auto_increment              |   
| CategoryName | char(50)         | NO   |     |                   |                             |   
| timestamp    | timestamp        | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+--------------+------------------+------+-----+-------------------+-----------------------------+
3 rows in set (0.07 sec)

mysql> DESC shopcategories;
+----------------+------------------+------+-----+-------------------+-----------------------------+
| Field          | Type             | Null | Key | Default           | Extra                       |   
+----------------+------------------+------+-----+-------------------+-----------------------------+
| ShopCategoryID | int(10) unsigned | NO   | PRI | NULL              | auto_increment              |   
| ShopID         | int(10) unsigned | YES  | MUL | NULL              |                             |   
| CategoryID     | int(10) unsigned | YES  | MUL | NULL              |                             |   
| timestamp      | timestamp        | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+----------------+------------------+------+-----+-------------------+-----------------------------+
4 rows in set (0.00 sec)

mysql> DESC locations;
+-----------------+------------------+------+-----+-------------------+-----------------------------+
| Field           | Type             | Null | Key | Default           | Extra                       |   
+-----------------+------------------+------+-----+-------------------+-----------------------------+
| LocationID      | int(10) unsigned | NO   | PRI | NULL              | auto_increment              |   
| LocationName    | char(50)         | YES  |     | NULL              |                             |   
| LocationUrlName | varchar(100)     | YES  |     | NULL              |                             |   
| ParentID        | int(10) unsigned | YES  |     | NULL              |                             |   
| timestamp       | timestamp        | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| postcode        | char(5)          | YES  |     | NULL              |                             |   
+-----------------+------------------+------+-----+-------------------+-----------------------------+
6 rows in set (0.00 sec)
mysql> 
mysql> desc shops;
+---------------------+------------------+------+-----+-------------------+-----------------------------+
| Field               | Type             | Null | Key | Default           | Extra                       |   
+---------------------+------------------+------+-----+-------------------+-----------------------------+
| ShopID              | int(10) unsigned | NO   | PRI | NULL              | auto_increment              |   
| ContactAddressID    | int(10) unsigned | NO   | MUL | 0                 |                             |   
| OwnerID             | int(10) unsigned | NO   | MUL | 0                 |                             |   
| ShopName            | int(10) unsigned    | Null  | MUL | 109              |                             |   
| LocationID           | varchar(50)      | NO   |     |                   |                             |   
| ShopUrlName         | varchar(300)     | YES  |     | NULL              |                             |                |                             |

1 个答案:

答案 0 :(得分:0)

我建议使用oursql模块。它非常简单而且非常强大。

以下是教程:https://pythonhosted.org/oursql/index.html

基本步骤

连接到数据库

conn = oursql.connect(host='127.0.0.1', user='habnabit', passwd='foobar',
    db='example', port=3307)

创建游标并执行查询

curs = conn.cursor(oursql.DictCursor)
curs.execute(
    'SELECT * FROM `some_table` WHERE `col1` = ? AND `col2` = ?',
    (42, -3))

获得结果

curs.fetchall()

所有这些示例都来自教程。如果您想了解有关这些类及其方法的更多信息,请参阅以下API参考: https://pythonhosted.org/oursql/api.html#

为了您的比较......我只是比较结果的ID。