dimanche 25 janvier 2015

Unable to run a valid sqlite3 query using left join from python code

using an sqlite3 extrnal tool executes successfully the following:



SELECT s.service_id, s.description ,s.status, b.name as building_name, p.name as professional_name, t.name as tenant_name, w.name as worker_name, t.phones as tenant_phones
FROM service as s
LEFT JOIN buildings as b USING (building_id)
LEFT JOIN tenants as t USING (tenant_id)
LEFT JOIN workers as w USING (worker_id)
LEFT JOIN professionals as p USING (professional_id)
WHERE service_id in ('1', '2')


When running this from python (2.7):



cursor.execute('''

SELECT s.service_id, s.description ,s.status, b.name as building_name, p.name as professional_name, t.name as tenant_name, w.name as worker_name, t.phones as tenant_phones
FROM service as s
LEFT JOIN buildings as b USING (building_id)
LEFT JOIN tenants as t USING (tenant_id)
LEFT JOIN workers as w USING (worker_id)
LEFT JOIN professionals as p USING (professional_id)
WHERE service_id in (%s)
''' % ','.join(str(b) for b in service_ids ) )


I get an error:



sqlite3.OperationalError: cannot join using column tenant_id - column not present in both tables


I saw similar questions like this, but didn't understand how to implement the solution.


Thanks. .


Aucun commentaire:

Enregistrer un commentaire