Вы смешиваете две вещи. Скалярный подзапрос в списке SELECT
должен возвращать только одно значение (как строку, так и столбец). Использование LIMIT 1
даст вам одну строку, но все равно много столбцов.
Таким образом, вы можете указать имя столбца:
select a.*, b.*,
(select c.col_name from tableC c where c.id_tableA = a.id order by .. limit 1)
from tableA a
inner join tableB b on a.id = b.id_tableA
where b.id_user = 50;
или используйте обычный JOIN
:
select a.*, b.*, c.*
from tableA a
inner join tableB b
on a.id = b.id_tableA
left join tableC c
on c.id_tableA = a.id
where b.id_user = 50;