0

2 つの mySQL サーバーがあります。オフラインはバージョン 5.5.25、オンラインはバージョン 5.0.95 です。UNION SELECT を実行して 2 つの結果セットを結合しようとしています。両方のクエリは、同じ結合を使用して同じテーブルから同じデータを抽出します。それぞれの唯一の違いは where クエリです。基本的な構文は次のとおりです。

(SELECT QUERY A) 
UNION 
(SELECT QUERY B) 
ORDER BY date_created DESC, subscription_rate_id ASC

このクエリをオフラインで実行すると、次のエラーが発生します。

エラー番号: 1064

SQL 構文にエラーがあります。webmaster'INNER JOIN d ONの近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してくださいddupe_master_id= webmaster. webmaster_idIN' 16 行目

クエリを個別に実行すると、両方とも機能します。クエリ全体をオンラインで実行すると、機能します。これは、2 つの新しいバージョンの mySQL を実行しているオフラインの mySQL でのみ発生します。エラーはクエリ B に関連していると思いますが、同じ INNER JOIN がクエリ A にあります。

クエリは非常に長く、簡単に短縮/分割できないため、ここに貼り付けていません。絶対に必要な場合は、提供する方法を見つけます。

どんな助けでも感謝します。

4

1 に答える 1

3

周りのブレースを外します

FROM (`webmaster`)

FROM `webmaster`

異なるバージョンとエラー メッセージについては、 SQL Fiddleを参照してください。

于 2012-12-04T10:31:05.760 に答える