я попытался с помощью кода ниже, и это говоритЗЕЬЕСТА имеет разное количество столбцов
Использованного ЗЕЬЕСТ имеет разное количество столбцов
, потому что расстояние колонок добавляется еще во втором запросе. Как мне решить что-то вроде этого или я могу получить право заказа без столбца расстояния? Я очень ценю любую помощь.
SELECT * FROM
(
SELECT * 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
Проблема заключается в том, что второй имеет один 'distance' и первый не делает, хотя я бы ожидать, что второй просто генерировать ошибку. Я не понял, что запятая после '*' является необязательной. –
Спасибо, что посмотрели на него, я попробовал выполнить второй код и 1-й код отдельно, он отлично работает .btw Мне пришлось добавить ',' после '*'. Но как вы можете использовать 'UNION' для неравномерных столбцов, подобных приведенному выше случаю чем код, который вы предложили в предыдущем вопросе. Спасибо снова. – jason