比如直接使用:
SELECT
distinct mobile
FROM
table_a
WHERE
code = 123
ORDER BY
a_ime desc
在本地mysql數據庫沒有錯,在線上的數據庫就會報如下錯(估計是版本的問題):
Expression #1 of ORDER BY clause is not in SELECT list, references column 'table_a.a_time' which is not in SELECT list
大意是:
order by 的列必須在 select中有。如果直接在select 中添加a_time 列,是不符合題意的
應該增加一層嵌套,改成如下:
SELECT
distinct mobile
FROM (
SELECT
mobile
FROM
table_a
WHERE
code = 123
ORDER BY
a_time desc
) as tmp
最后一句as map 必須要,如果沒有這一句,就報語法錯誤:
Every derived table must have its own alias
每一個派生出來的表都必須有一個自己的別名
原創文章,歡迎轉載,轉載請注明出處!