Skip to content

Instantly share code, notes, and snippets.

@boxbeatsy
Last active March 31, 2017 23:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save boxbeatsy/ece5e163b89ffacd296de4dd38434849 to your computer and use it in GitHub Desktop.
Save boxbeatsy/ece5e163b89ffacd296de4dd38434849 to your computer and use it in GitHub Desktop.
Problematic Query:
Job.objects.exclude(customer__voucher__merchant='extra-hours',customer__voucher__job__isnull=True)
Error:
invalid reference to FROM-clause entry for table "proj_customer"
LINE 1: ...r_id" ) WHERE (U2."job_id" IS NULL AND U1."id" = ("proj... ^
HINT: Perhaps you meant to reference the table alias "u1".
Corresponding SQL:
SELECT * FROM proj_job WHERE NOT ("proj_job"."customer_id" IN (SELECT U2."customer_id" AS Col1 FROM "proj_voucher" U2 WHERE (U2."merchant" = extra-hours AND U2."customer_id" IS NOT NULL)) AND "proj_job"."customer_id" IS NOT NULL AND (("proj_job"."customer_id" IN (SELECT U1."id" AS Col1 FROM "proj_customer" U1 LEFT OUTER JOIN "proj_voucher" U2 ON ( U1."id" = U2."customer_id" ) WHERE (U2."job_id" IS NULL AND U1."id" = ("proj_customer"."id"))) AND "proj_job"."customer_id" IS NOT NULL) OR "proj_job"."customer_id" IS NULL))
Working Query:
Job.objects.exclude(customer__voucher__merchant='extra-hours',customer__voucher__job__isnull=False)
Corresponding SQL:
SELECT * FROM proj_job WHERE NOT ("proj_job"."customer_id" IN (SELECT U2."customer_id" AS Col1 FROM "proj_voucher" U2 WHERE (U2."merchant" = extra-hours AND U2."customer_id" IS NOT NULL)) AND "proj_job"."customer_id" IS NOT NULL AND "proj_job"."customer_id" IN (SELECT U2."customer_id" AS Col1 FROM "proj_voucher" U2 WHERE (U2."job_id" IS NOT NULL AND U2."customer_id" IS NOT NULL)) AND "proj_job"."customer_id" IS NOT NULL)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment