2014-10-31 3 views
0

Эй, ребята, я новичок в MySQL на самом деле ..я уже писал два типа кода,Mysql разница подзапрос ошибка

первого типа

select ID, 
(select n.NAME from CUSTOMERS as n group by SALARY) as m 
from CUSTOMERS; 

второго типа

select ID, 
from (select n.NAME from CUSTOMERS as n) as m 
group by SALARY; 

Первый работает нормально, как я и ожидал, но второй не сделал. Это вызывает меня ошибка, как

Unknown column 'ID' in 'field list': select ID from (select NAME from CUSTOMERS) as m group by SALARY

Так на вопрос, может ли второй способ быть выполнен в mysql без каких-либо ошибок на самом деле?

Надеется, что вы, ребята, можете мне помочь out..Thx

+0

Не уверен, что (вы думаете) второй запрос делает. – Strawberry

+0

То, что вы пытаетесь достичь из запроса, может быть, есть еще один лучший способ сделать это. –

ответ

0

Ваших второй терпит неудачу, потому что вы запрашиваете столбец ID из подзапроса, который не имеет ID:

select ID, 
from (select n.NAME from CUSTOMERS as n) as m 
group by SALARY; 

Он имеет только Name. Вам нужно будет добавить оба значения ID и SALARY в ваш подзапрос, если вы хотите использовать их в своем основном запросе.

select ID, 
from (select n.ID, n.SALARY from CUSTOMERS as n) as m 
group by SALARY; 

Также как @Strawyberry указал ... это вздор. Вы группируете поле, которое не находится в вашем предложении SELECT, которое ... я не знаю. Вы также подзапросите что-то, что не нужно подкачать. Просто выполните:

select m.ID, 
from CUSTOMERS as m 
group by m.SALARY; 
+1

Кроме того, это вздор. – Strawberry

Смежные вопросы