ऐसा इसलिए है क्योंकि आपका पहला SELECT
और दूसरा SELECT
जब से आपने Distance
. पेश किया है, तब से आपके पास अलग-अलग संख्या में कॉलम हैं दूसरे में SELECT
.
तो Distance
बनाने की कोशिश करें पहली क्वेरी में शून्य या 0 इस प्रकार है।
SELECT * FROM
(
SELECT *, 0 as Distance
FROM user u
INNER JOIN employee e ON (u.empid = e.empid)
INNER JOIN awards a ON (u.empid = a.empid)
WHERE u.empid = 123
UNION
SELECT *, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) )+ sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance
FROM user u
INNER JOIN employee e ON (u.empid = e.empid)
INNER JOIN awards a ON (u.empid = a.empid)
HAVING distance < 25
ORDER BY distance
) a
ORDER BY timestamp DESC