JOIN or WHERE?
Okay .. I don’t really expect any response from the regular readers today. This is another technical post.
I’m just wondering which is more efficient.
SELECT
documents.*,
companies.code AS company_code,
companies.name AS company_name,
projects.code AS project_code,
projects.name AS project_name,
contacts.firstname AS contact_firstname,
contacts.id AS contact_id
FROM
documents
INNER JOIN
(companies, projects, contacts)
ON
(documents.company_id = companies.id
AND documents.project_id = projects.id
AND contacts.company_id = companies.id)
WHERE
(documents.document_type = 'QUO'
OR documents.document_type = 'QTS')
AND documents.sub_type = 'QP'
ORDER BY documents.document_code DESC;
or …
SELECT
documents.*,
companies.code AS company_code,
companies.name AS company_name,
projects.code AS project_code,
projects.name AS project_name,
contacts.firstname AS contact_firstname,
contacts.id AS contact_id
FROM
documents, companies, projects, contacts
WHERE
companies.id = documents.company_id
AND projects.id = documents.project_id
AND projects.contact_id = contacts.id
AND (documents.document_type = 'QUO'
OR documents.document_type = 'QTS')
AND documents.sub_type = 'QP'
ORDER BY documents.document_code DESC;
Or maybe they’re exactly the same. Hmmm ..?