3
下面的MySQL查詢提供了一個錯誤:'email.id' isn't in GROUP BY, 1055
mysql的組時,別名指定
SELECT contact_a.id as contact_id,
contact_a.sort_name as `sort_name`,
contact_a.display_name as `display_name`,
phone.id as phone_id,
phone.phone_type_id as phone_type_id,
phone.phone as `phone`,
email.id as `email_id`,
email.email as `email`,
FROM contact_table contact_a
LEFT JOIN email ON (contact_a.id = email.contact_id)
LEFT JOIN phone ON (contact_a.id = phone.contact_id)
GROUP BY contact_a.id,
`sort_name`,
`display_name`,
`phone_id`,
`phone_type_id`,
`phone`,
`email_id`,
`email`";
eventhough我指定的email.id
的別名GROUP BY
。
如果我將GROUP BY中的別名email_id
替換爲email.id
,它將起作用。
但是爲什麼我不能在GROUP BY中使用別名,它如何爲其他別名如phone_id
,phone_type_id
,email
等工作?
你能否檢查在from子句引用的任何表中是否有實際的email_id字段?此外,我只是沒有看到你的查詢點。在選擇列表中的所有字段和+1以上進行分組時,有什麼意義? – Shadow
'email'表中有一列'id'。我已啓用ONLY_FULL_GROUP_BY模式。所以'email.id'存在 – jitendrapurohit
這不是我所問過的。我明白,有一個email.id列。但是在from子句引用的任何表中有沒有email_id列? – Shadow