Records = Cursor.execute("SELECT cust_addr1, cust_addr2, cust_postcode, cust_telno_home, cust_email \
FROM tblcustomer, tblpet \
WHERE cust_surname = ? and tblpet.pet_deceased = ?" ,(SearchCriteria[0], "Y")).fetchall()
Я могу запустить этот запрос, если я полностью удалю tblpet, но когда я добавлю tblpet, запрос запустится, но я получу дублированные результаты. Таким образом, вместо 5 результатов у меня было что-то вроде 6300, но все те же результаты зацикливались.
Спасибо
ИЗМЕНИТЬ
Теперь я исправил это благодаря Mureinik и Siyual за то, что они рассказали мне о объединениях. потом нашел эти
https://msdn.microsoft.com/en-us/library/bb243855(v=office.12).aspx
СОЕДИНЕНИЕ таблиц mdb с помощью pyodbc
Это сработало на 50%, но тогда у меня появилась отличная идея войти в доступ и сделать запрос, а затем переключиться на представление SQL и скопировать его. Это прекрасно работает, и я был так близок
ОТВЕТ
Records = Cursor.execute("""SELECT tblcustomer.cust_addr1, tblcustomer.cust_addr2,
tblcustomer.cust_postcode, tblcustomer.cust_telno_home, tblcustomer.cust_email
FROM tblcustomer INNER JOIN tblpet ON (tblcustomer.cust_no = tblpet.pet_cust_no)
WHERE cust_surname = ? and tblpet.pet_deceased = ?""", (SearchCriteria[0],"Y")).fetchall()
CROSS JOIN
. Если вы собираетесь использоватьJOIN
таблицы, используйте явный синтаксисJOIN
(не используйте запятые в предложенииFROM
— серьёзно, это было объявлено устаревшим в 1992 году) и показать, как таблицы связаны в предложенииON
. - person Siyual   schedule 27.10.2016