In [17]:
import MySQLdb

In [18]:
db = MySQLdb.connect(host="localhost", user="root", db = "amazon_reviews")

In [19]:
cursor = db.cursor()

In [22]:
tablename = 'mult_reviews_test'

In [34]:
cursor.execute("SELECT DISTINCT PID, PTitle, count(PTitle) AS cnt FROM "+tablename+" GROUP BY Ptitle HAVING cnt<30 LIMIT 50;")


Out[34]:
50L

In [35]:
title_list = cursor.fetchall()

In [37]:
title_list = tuple((x[0], x[1]) for x in title_list)

In [38]:
print title_list


((' B00000I7BG', ''), (' B0006EI6OW', '"C" is for Corpse (A Kinsey Millhone mystery, Book 3)'), (' B00086TDDG', '"Imperialism" and "the tracks of our forefathers";'), (' B000N33CTU', '"The Big Chill" Original Motion Picture Soundtrack'), (' B000K3A8GI', '"The Lion King" Special Edition'), (' B000001AOB', '"The Temptations - Greatest Hits, Vol. 1"'), (' B000OYHVMM', '"Uncle Dick" Wootton'), (' 1404358323', '$30,000 Bequest, The'), (' B000NQR81A', '& He Just Pointed to the Sky'), (' B0000027R6', "'58 Sessions Featuring Stella by Starlight"), (' B003L16FB8', "'night, Mother (1986)"), (' B00004RVC8', "'Til There Was You [VHS] (1997)"), (' B00004RQQK', '(1993)'), (' B000FC1KWK', '(A Modern Library E-Book)'), (' B000NOK0JO', '(Collector Edition) (2007)'), (' 157293039X', '(Includes CD-Rom) (OSWALD CHAMBERS LIBRARY)'), (' B000002S8B', '(music from) Tristan und Isolde, & Lohengrin [Karajan Edition]'), (' 0451215826', '(The Goddesses #1) (Goddesses (Signet))'), (' B0001F3JAC', '*NEW Ladies Performance Serengeti Knee Patch Riding Breeches'), (' B0007HSM06', '--If you sailed on the Mayflower'), (' B000FN0KZ2', '-001 Silicone O-Ring, 70A Durometer, Red, 1/32&#034; ID, 3/32&#034; OD, 1/32&#034; Width (Pack of 10)'), (' B000FMUTGS', '-003 Silicone O-Ring, 70A Durometer, Red, 1/16&#034; ID, 3/16&#034; OD, 1/16&#034; Width (Pack of 5)'), (' B000FN0WEQ', '-006 PTFE O-Ring, 55D Durometer, White, 1/8&#034; ID, 1/4&#034; OD, 1/16&#034; Width (Pack of 5)'), (' B000FMUTX6', '-014 PTFE O-Ring, 55D Durometer, White, 1/2&#034; ID, 5/8&#034; OD, 1/16&#034; Width (Pack of 25)'), (' B000FMWOAC', '-016 Silicone O-Ring, 70A Durometer, Red, 5/8&#034; ID, 3/4&#034; OD, 1/16&#034; Width (Pack of 25)'), (' B000FMYQJO', '-017 PTFE O-Ring, 55D Durometer, White, 11/16&#034; ID, 13/16&#034; OD, 1/16&#034; Width (Pack of 5)'), (' B000FMYRF2', '-021 Silicone O-Ring, 70A Durometer, Red, 15/16&#034; ID, 1-1/16&#034; OD, 1/16&#034; Width (Pack of 25)'), (' B000FMYT2I', '-025 Viton O-Ring, 75A Durometer, Black, 1-3/16&#034; ID, 1-5/16&#034; OD, 1/16&#034; Width (Pack of 10)'), (' B000FN0ZX4', '-026 Viton O-Ring, 75A Durometer, Black, 1-1/4&#034; ID, 1-3/8&#034; OD, 1/16&#034; Width (Pack of 25)'), (' B000FN0ZW0', '-026 Viton O-Ring, 75A Durometer, Black, 1-1/4&#034; ID, 1-3/8&#034; OD, 1/16&#034; Width (Pack of 5)'), (' B000FMUSSM', '-027 Buna O-Ring, 70A Durometer, Black, 1-5/16&#034; ID, 1-7/16&#034; OD, 1/16&#034; Width (Pack of 25)'), (' B000FN0ZY8', '-027 Viton O-Ring, 75A Durometer, Black, 1-5/16&#034; ID, 1-7/16&#034; OD, 1/16&#034; Width (Pack of 5)'), (' B000FN0ZZW', '-028 Viton O-Ring, 75A Durometer, Black, 1-3/8&#034; ID, 1-1/2&#034; OD, 1/16&#034; Width (Pack of 10)'), (' B000FMYR9I', '-029 PTFE O-Ring, 55D Durometer, White, 1-1/2&#034; ID, 1-5/8&#034; OD, 1/16&#034; Width (Pack of 25)'), (' B000FN0URA', '-030 Silicone O-Ring, 70A Durometer, Red, 1-5/8&#034; ID, 1-3/4&#034; OD, 1/16&#034; Width (Pack of 25)'), (' B000FN10GU', '-035 Viton O-Ring, 75A Durometer, Black, 2-1/4&#034; ID, 2-3/8&#034; OD, 1/16&#034; Width (Pack of 5)'), (' B000FN0V9C', '-036 Silicone O-Ring, 70A Durometer, Red, 2-3/8&#034; ID, 2-1/2&#034; OD, 1/16&#034; Width (Pack of 5)'), (' B000FN0WOQ', '-038 Buna O-Ring, 70A Durometer, Black, 2-5/8&#034; ID, 2-3/4&#034; OD, 1/16&#034; Width (Pack of 10)'), (' B000FMYTXC', '-041 Viton O-Ring, 75A Durometer, Black, 3&#034; ID, 3-1/8&#034; OD, 1/16&#034; Width (Pack of 10)'), (' B000FMYQJ4', '-046 Buna O-Ring, 70A Durometer, Black, 4-1/4&#034; ID, 4-3/8&#034; OD, 1/16&#034; Width (Pack of 10)'), (' B000FMYU9A', '-049 Viton O-Ring, 75A Durometer, Black, 5&#034; ID, 5-1/8&#034; OD, 1/16&#034; Width (Pack of 10)'), (' B000FMUY4K', '-050 Viton O-Ring, 75A Durometer, Black, 5-1/4&#034; ID, 5-3/8&#034; OD, 1/16&#034; Width (Pack of 10)'), (' B000FN0WD2', '-102 Silicone O-Ring, 70A Durometer, Red, 1/16&#034; ID, 1/4&#034; OD, 3/32&#034; Width (Pack of 25)'), (' B000FMWRQI', '-104 Viton O-Ring, 75A Durometer, Black, 1/8&#034; ID, 5/16&#034; OD, 3/32&#034; Width (Pack of 25)'), (' B000FMUTGI', '-105 Silicone O-Ring, 70A Durometer, Red, 5/32&#034; ID, 11/32&#034; OD, 3/32&#034; Width (Pack of 10)'), (' B000FMUUWG', '-120 Silicone O-Ring, 70A Durometer, Red, 1&#034; ID, 1-3/16&#034; OD, 3/32&#034; Width (Pack of 10)'), (' B000FMYRG6', '-121 Silicone O-Ring, 70A Durometer, Red, 1-1/16&#034; ID, 1-1/4&#034; OD, 3/32&#034; Width (Pack of 25)'), (' B000FN0XFE', '-121 Viton O-Ring, 75A Durometer, Black, 1-1/16&#034; ID, 1-1/4&#034; OD, 3/32&#034; Width (Pack of 5)'), (' B000FMWPWE', '-122 PTFE O-Ring, 55D Durometer, White, 1-1/8&#034; ID, 1-5/16&#034; OD, 3/32&#034; Width (Pack of 5)'), (' B000FN0XMC', '-123 Viton O-Ring, 75A Durometer, Black, 1-3/16&#034; ID, 1-3/8&#034; OD, 3/32&#034; Width (Pack of 10)'))

In [9]:
user_list = tuple(x[0] for x in user_list)

In [10]:
print user_list


('AYGDKEVDCOHRJ', 'A1QAXWETH56D6J', 'A2DIWGD35DLHWN', 'AGIR4MLM5NFRZ', 'AXYESYR1GNGM0', 'A3V6Z4RCDGRC44', 'A26XM1EP9C6024', 'A2JOTVRQSHC7CH', 'A2OHTA1JJ4J6O2', 'A3474ZR07UN1CJ')

In [12]:
cursor.execute("Select PID FROM mult_reviews_test WHERE RUserID = "+'"'+user_list[0]+'"'+" GROUP BY PTitle;")


Out[12]:
2L

In [13]:
prod_list = cursor.fetchall()

In [14]:
print prod_list


((' B000RI1BUS',), (' B000XUOLVQ',))

In [15]:
cursor.execute("Select PID FROM mult_reviews_test WHERE RUserID = " + '"'+ "AX4VWMTFHQE4R" +'"'+" GROUP BY PTitle;")


Out[15]:
1L

In [16]:
print cursor.fetchall()


((' B00023DDRM',),)

In [ ]: