Hi, I have two query series that I wonder whether they can be compacted into a single query:
FIRST QUERY SERIES cursor.execute("""select d.ID, d.Name, b.SupersetID from books_data as d join books as b on d.ID=b.BooksDataID2 where b.BooksDataID!=b.BooksDataID2 and b.ReligionsID=%s""", (rel_id,)) tmp = cursor.fetchall() cursor.execute("""select d.ID from books_data as d join books as b on d.ID=b.BooksDataID2 join books_compilations as c on d.ID=c.BooksDataID where b.ReligionsID=%s""", (rel_id,)) junk_ids = [itm[0] for itm in cursor] poss_books_data = [] for id, name, ss_id in tmp: if id not in junk_ids: poss_books_data.append([id, name, ss_id]) SECOND QUERY SERIES cursor.execute("""select ReligionsID from books where BooksDataID=%s""", (tmp_ids[0],)) rel_id = cursor.fetchone()[0] # The first entry will always give the correct value cursor.execute("""select d.ID, d.Name, b.SupersetID from books_data as d join books as b on d.ID=b.BooksDataID2 where b.BooksDataID!=b.BooksDataID2 and b.ReligionsID=%s""", (rel_id,)) tmp = cursor.fetchall() cursor.execute("""select d.ID from books_data as d join books as b on d.ID=b.BooksDataID2 join books_compilations as c on d.ID=c.BooksDataID where b.ReligionsID=%s""", (rel_id,)) I don't know that they're necessary, but here are the table definitions: mysql> describe books; +-----------------+------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+------------+------+-----+---------+----------------+ | ID | int(11) | NO | PRI | NULL | auto_increment | | ReligionsID | int(11) | NO | MUL | NULL | | | PrimaryReligion | tinyint(1) | YES | | 0 | | | BooksDataID | int(11) | NO | | NULL | | | BooksDataID2 | int(11) | YES | | NULL | | | SupersetID | int(11) | YES | | NULL | | +-----------------+------------+------+-----+---------+----------------+ 6 rows in set (0.09 sec) mysql> describe books_data; +------------+------------------------------------------------------------------ -------------------------------------------------------+------+-----+---------+- ---------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------------------------------------------------------ -------------------------------------------------------+------+-----+---------+- ---------------+ | ID | int(11) | NO | PRI | NULL | auto_increment | | Name | varchar(30) | NO | | NULL | | | Label | enum('Cannonised','Uncannonised, fully accepted','Uncannonised, \ n not fully accepted','Uncannonised, controversial') | NO | | NULL | | | PrimaryKey | tinyint(1) | YES | | 0 | | +------------+------------------------------------------------------------------ -------------------------------------------------------+------+-----+---------+- ---------------+ 4 rows in set (0.13 sec) mysql> describe books_compilations; +-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | ID | int(11) | NO | PRI | NULL | auto_increment | | Name | varchar(30) | NO | | NULL | | | SupersetID | int(11) | NO | | NULL | | | BooksDataID | int(11) | NO | | NULL | | +-------------+-------------+------+-----+---------+----------------+ 4 rows in set (0.20 sec) TIA, Savi -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql