Skip to content

Instantly share code, notes, and snippets.

@encoreshao
Created June 2, 2017 08:39
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 encoreshao/6207eff9123e66acf9c40760c3337f89 to your computer and use it in GitHub Desktop.
Save encoreshao/6207eff9123e66acf9c40760c3337f89 to your computer and use it in GitHub Desktop.
Mixing query in PostgreSQL (join tables)
SELECT salesforce_accounts.*, salesforce_tasks.*, salesforce_accounts.id AS salesforce_account_id, salesforce_tasks.id AS salesforce_task_id FROM "salesforce_accounts"
LEFT JOIN salesforce_tasks ON salesforce_accounts.salesforce_id = salesforce_tasks.account_id
LEFT JOIN companies ON companies.salesforce_id = salesforce_accounts.salesforce_id
WHERE
(
(
salesforce_tasks.owner_id = 'xxxxxxxxxxxxx'
AND salesforce_tasks.is_deleted = 'f'
AND salesforce_tasks.activity_date <= '2017-06-11'
AND salesforce_tasks.activity_date >= '2017-04-04'
AND salesforce_tasks.status = 'Not Started'
AND salesforce_tasks.activity_date < '2017-06-02'
)
OR
(
salesforce_accounts.is_deleted = 'f'
AND salesforce_accounts.owner_id = 'xxxxxxxxxxxxx'
AND salesforce_accounts.id NOT IN (
SELECT distinct(salesforce_accounts.id) FROM salesforce_accounts
RIGHT OUTER JOIN salesforce_tasks ON salesforce_tasks.account_id = salesforce_accounts.salesforce_id
WHERE (salesforce_accounts.owner_id = 'xxxxxxxxxxxxx')
AND (salesforce_tasks.status = 'Not Started')
)
AND
(
salesforce_tasks.id IN (
SELECT max(salesforce_tasks.id) FROM salesforce_tasks
WHERE (salesforce_tasks.status = 'Completed')
AND salesforce_tasks.is_deleted = 'f'
GROUP BY salesforce_tasks.account_id
)
OR
salesforce_tasks.id IS NULL
OR
salesforce_tasks.is_deleted = 't'
)
))
ORDER BY companies.score DESC NULLS LAST, salesforce_tasks.activity_date ASC NULLS LAST, salesforce_tasks.id ASC LIMIT 10 OFFSET 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment