JaoudeStudios.com

Open Source is the road ahead!
It is currently Thu Sep 09, 2010 5:19 pm

All times are UTC




Post new topic Reply to topic  [ 1 post ] 
Author Message
 Post subject: MySQL Beast of a Query
PostPosted: Tue Feb 24, 2009 9:28 am 
Offline
Site Admin
User avatar

Joined: Wed Jul 02, 2008 7:54 pm
Posts: 596
Location: Surrey
I wrote this query a month or so ago, it is not optimised as there was not time, it was in my previous role just before I left. But I am proud of the sheer size of the query. ;)

I posted it on http://www.devnetwork.net where I am a devnet resident and I got some good feedback on how to optimise it. Unfortunately I was unable to attempt to optimise it as now I have left that role I do not have the database to run the query against.

Here is the query and below that is the link to the forum thread on Devnetwork.
Code:

SELECT
SQL_CALC_FOUND_ROWS
requirement
.require_id, requirement.title, requirement.min_ft, requirement.max_ft, requirement.min_m, requirement.max_m,
requirement.min_a, requirement.max_a, requirement.min_h, requirement.max_h, requirement.pdf, requirement.date, requirement.description,
CONCAT(requirement.min_ft, '-', requirement.max_ft, ' sqft, ', requirement.min_m, '-', requirement.max_m, ' meters, ', requirement.min_a, '-', requirement.max_a, ' acres, ', requirement.min_h, '-', requirement.max_h, ' hectares') AS sizeRange
, retailer.account_type, retailer.name AS rName, retailer.retailer_id, retailer.logo
, data_planning_type.planning_id, data_planning_type.class, data_planning_type.type,
GROUP_CONCAT(DISTINCT data_planning_type.class SEPARATOR ', ') AS planType
, GROUP_CONCAT(DISTINCT require_region_inc.region_id SEPARATOR ', ') AS location
, (CASE WHEN ((require_region_exc.region_id = '24517' AND require_region_exc.depth = '3')
OR (require_region_exc.region_id = data_regions_uk.id AND data_regions_uk.county = 'Surrey' AND require_region_exc.depth = '2')
OR (require_region_exc.region_id = data_regions_uk.id AND data_regions_uk.region = 'South East' AND require_region_exc.depth = '1')
)
 THEN -1 ELSE 0 END) AS notLocation
, users.firstname, users.lastname, users.company
FROM requirement
JOIN retailer ON requirement
.retailer_id = retailer.retailer_id
LEFT JOIN require_planning ON requirement
.require_id = require_planning.require_id
LEFT JOIN data_planning_type ON require_planning
.planning_id = data_planning_type.planning_id
JOIN require_region_inc ON requirement
.require_id = require_region_inc.require_id
LEFT JOIN require_region_exc ON requirement
.require_id = require_region_exc.require_id
JOIN data_regions_uk ON require_region_inc
.region_id = data_regions_uk.id
 JOIN user_requirement ON requirement
.require_id = user_requirement.require_id
 JOIN users ON user_requirement
.user_id = users.user_id
WHERE   
(data_planning_type.planning_id = '1')
AND (require_region_inc.region_id = '24517' AND require_region_inc.depth = 3)
AND  (requirement.description LIKE '%a%' OR requirement.title LIKE '%a%')
AND  (requirement.min_ft < 1000 AND requirement.max_ft > 1000)
AND  (users.firstname LIKE '%a%' OR users.lastname LIKE '%a%')
AND  (users.company LIKE '%a%')
AND  (retailer.name LIKE '%a%')
GROUP BY
requirement
.require_id
HAVING notLocation 
= 0
ORDER BY retailer
.account_type ASC, requirement.date DESC
LIMIT 0
,20

http://forums.devnetwork.net/viewtopic.php?f=2&t=93243&hilit=+beast

_________________
JaoudeStudios.com :: Eddie Jaoude :: Geek by nature, Linux by choice
Forum JaoudeStudios - php, mysql, xhtml, css, javascript, jquery, svn subversion, linux, lamp, W3C
Online Agile Task board
Open Source is the road ahead!!


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group