MySQL database Query:
SELECT *
FROM (SELECT *
FROM (`static_package_data`)
LEFT JOIN package_interest pi ON static_package_data.id=pi.package_details_id
WHERE `package_availability_type` = 'all'
AND `admin_status` = 'ACTIVE'
AND `status` = 'ACTIVE'
AND static_package_data.package_price BETWEEN 2000 AND 5000
AND WHERE 'static_package_data.session_id'='AE44278818'
GROUP BY static_package_data.id
UNION ALL
SELECT *
FROM (`static_package_data`)
LEFT JOIN package_interest pi ON static_package_data.id=pi.package_details_id
WHERE `package_availability_type` ='range'
AND `admin_status` = 'ACTIVE'
AND `status` = 'ACTIVE'
AND `to_date` >= '2017-02-04'AND static_package_data.package_price BETWEEN 2000 AND 5000
AND WHERE 'static_package_data.session_id'='AE44278818'
GROUP BY static_package_data.id
) as dt LIMIT 0 , 10
The following query throw the next error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near WHERE 'static_package_data.session_id'='AE44278818' GROUP BY static_package_data.' at line 1
I added the session id from my existing query
Simple,
SELECT *
FROM (
SELECT *
FROM (`static_package_data`)
LEFT JOIN package_interest pi
ON static_package_data.id=pi.package_details_id
WHERE `package_availability_type` = 'all'
AND `admin_status` = 'ACTIVE'
AND `status` = 'ACTIVE'
AND static_package_data.package_price BETWEEN 2000 AND 5000
AND
WHERE 'static_package_data.session_id'='AE44278818'
GROUP BY static_package_data.id
UNION ALL
SELECT *
FROM (`static_package_data`)
LEFT JOIN package_interest pi
ON static_package_data.id=pi.package_details_id
WHERE `package_availability_type` ='range'
AND `admin_status` = 'ACTIVE'
AND `status` = 'ACTIVE'
AND `to_date` >= '2017-02-04'
AND static_package_data.package_price BETWEEN 2000 AND 5000
AND
WHERE 'static_package_data.session_id'='AE44278818'
GROUP BY static_package_data.id ) AS dt limit 0 ,
10;
You only need one "WHERE" any thing after it should just be AND
2000 AND 5000 AND WHERE 'static_package_data.session_id'='AE4
should be
2000 AND 5000 AND 'static_package_data.session_id'='AE4
There are two extra WHERE
clauses in your code along with other syntax errors such as single quotes around column names instead of backticks.
SELECT
*
FROM
(SELECT
*
FROM
`static_package_data`
LEFT JOIN package_interest pi ON static_package_data.id = pi.package_details_id
WHERE
`package_availability_type` = 'all'
AND `admin_status` = 'ACTIVE'
AND `status` = 'ACTIVE'
AND `static_package_data`.package_price BETWEEN 2000 AND 5000
AND `static_package_data`.`session_id` = 'AE44278818'
GROUP BY static_package_data.id UNION ALL SELECT
*
FROM
`static_package_data`
LEFT JOIN package_interest pi ON static_package_data.id = pi.package_details_id
WHERE
`package_availability_type` = 'range'
AND `admin_status` = 'ACTIVE'
AND `status` = 'ACTIVE'
AND `to_date` >= '2017-02-04'
AND `static_package_data`.package_price BETWEEN 2000 AND 5000
AND `static_package_data`.`session_id` = 'AE44278818'
GROUP BY `static_package_data`.id) AS dt
-- Consider adding an order by clause here --
LIMIT 0 , 10
Also, consider adding order by
clause to your query when using limit or else any 10 rows will be fetched.