最近在做mysql sql兼容,原來是oracle的sql都要保證在mysql數據庫運行
業務場景:原來是一個帶有子查詢的sql,在oracle是可以正常運行的,遷到mysql就發現報錯了,報錯信息如:
Every derived table must have its own alias
這個報錯的意思是,派生出來的查詢結果必須有一個別名,比如SQL:
select * from (select a.id , a.name from A) limit 0,1
或者
select count(1) from (select a.id , a.name from A)
等等查詢在oracle都是正常的,但是在mysql都會報錯,解決方法就是給子查詢加個別名
select * from (select a.id , a.name from A) t limit 0,1
或者
select count(1) from (select a.id , a.name from A) t
ok,加個別名后,上訴sql都可以正常運行,mysql和oracle語法異同的可以參考我之前的博客:https://blog.csdn.net/u014427391/article/details/87307903