Ошибка #1241 - Операнд должен содержать 1 столбец (ы) в Mysql
Я просто попробую следующий запрос:
SELECT *,
(
SELECT count(*)
FROM users
where users.email=calls.email
) as ureg,
(
SELECT sum(qty)
FROM product
where product.owner in
(SELECT *
from users
where users.email=calls.email)
) as pop
FROM calls
order by calls.data desc
LIMIT 0,20
но я получаю следующую ошибку:
#1241 - Operand should contain 1 column(s)
Как мне исправить мой запрос?
Изменить: изменив SELECT * from users where users.email=calls.email
в SELECT id from users where users.email=calls.email
это работает, потому что запрос ищет product.owner в связке id
которые существуют в пользователях
2 ответа
Решение
where product.owner in (SELECT *
product.owner
один столбец, поэтому подзапрос должен возвращать один столбец (что соответствует product.owner
).
Попробуй это
SELECT calls.*, count(users.*) as ureg, sum(twons.qty) as pop
FROM calls
INNER JOIN users ON users.email=calls.email
INNER JOIN towns ON towns.id = users.town
^^^^^^^^^^^^^^^^^^^^^^^^^^--you have to correct this to your table column names
order by data desc
LIMIT 0,20
- Вы должны исправить это
ON towns.id = users.town
к вашим именам таблиц