Ошибка в запросе (1241): операнд должен содержать 1 столбец - PullRequest
0 голосов
/ 10 марта 2019

Как исправить эту ошибку?

Этот запрос возвращает ошибку: Ошибка в запросе (1241): операнд должен содержать 1 столбец (ов)

SELECT uti_id, uti_nome FROM utilizador WHERE uti_escola=1 AND uti_id IN 
(SELECT DISTINCT ens_utiid_escola, SQRT(POW(69.1 * (uti_latitude - ?), 2) + POW(69.1 * (? - uti_longitude) * COS(uti_latitude / 57.3), 2)) * 1.609344 AS distance
FROM utilizador LEFT OUTER JOIN ensino ON uti_id=ens_utiid WHERE uti_estado=1
AND uti_tipo=1 HAVING distance < ?) ORDER BY uti_nome

1 Ответ

0 голосов
/ 10 марта 2019

Ошибка исходит из этой части запроса:

uti_id IN (SELECT DISTINCT ens_utiid_escola, SQRT(POW(69.1 * (uti_latitude - ?), 2) + POW(69.1 * (? - uti_longitude) * COS(uti_latitude / 57.3), 2)) * 1.609344 AS distance

Во-первых, вам не нужно select distinct в подзапросе in. Во-вторых, ошибка в том, что у вас есть две строки. Так что если вы хотите использовать эту логику:

uti_id IN (SELECT ens_utiid_escola
           FROM . . .
          )

Тогда вам нужно повторить выражение для distance, где вы его используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...