2014-01-20 5 views
0

Мой запрос в основном выглядит следующим образом:Регистрация на выбранной колонке

SELECT a, 
    (SELECT name 
    FROM table3 
    LIMIT 1) as b 
FROM table1 
GROUP BY b 

Однако я получаю сообщение об ошибке сказав «Неизвестная столбец„Ъ“в группе» заявлении.

Итак, как правильно назначить псевдоним для этого подселективного столбца?

Редактировать: То, что я на самом деле пытаюсь сделать, немного сложнее. У меня есть продукты, назначенные подкатегориям. Один продукт может иметь несколько подкатегорий. Каждая подкатегория назначается основной категории, и у одного продукта могут быть только подкатегории, которые находятся в одной основной категории. Затем у меня есть столбец с расходами, который присваивает цены продуктам. Теперь, когда я хочу посмотреть, сколько денег было потрачено в определенной основной категории, я присоединяюсь к столам и группирую их по основной категории и использую SUM (цена). Однако, если один продукт имеет несколько подкатегорий, он подсчитывается несколько раз. Запрос здесь - единственный способ, который я нашел до сих пор, который опускает эту проблему.

+1

Что вы на самом деле пытается сделать? В настоящее время это кажется проблемой [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). –

+0

Вам не нужно указывать псевдонимы в подвыборном столбце, просто используйте 'GROUP BY name' вместо' GROUP BY b'. Даже тогда ваш общий запрос будет неправильным, потому что ваш список GROUP BY и список SELECT будут разными. –

+0

Ответ ниже решил мою проблему. Большое спасибо за ваши усилия, Азиз! – eevaa

ответ

3
SELECT * FROM 
(
    SELECT a, 
    (SELECT name 
    FROM table3 
    LIMIT 1) as b 
    FROM table1 
) as R 
GROUP BY b 
1

Вы должны использовать Select в Select Заявление

Как это

SELECT * FROM 
(
    SELECT a,(SELECT name FROM table3 LIMIT 1) as b FROM table1 
) As Temp 

GROUP BY b 
Смежные вопросы