私は非営利団体が MS-Access データを MYSQL に移行するのを手伝っていました。そこで、データを MYSQL に移植し、ms-access で ODBC を使用して MYSQL テーブルへのリンクを作成しました。既存の SQL の大部分は正常に動作します。しかし、私はこの1つのエラーに困惑しています -
SQL 構文にエラーがあります。UNION の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください...
私は7つのUNIONSを使用してSQLを剥ぎ取り、まだ失敗している骨をむき出しにしました。
(SELECT 1 as A FROM Households H)
UNION ALL
(SELECT 2 as A FROM Households H)
UNION ALL
(SELECT 3 as A FROM Households H)
私が理解している部分は、SQLの下でUNIONの意味を1つだけ実行する限り、上記を正常に実行できるということですが、3つ目のUNIONを追加するとODBCエラーが発生します
(SELECT 1 as A FROM Households H)
UNION ALL
(SELECT 2 as A FROM Households H)
`または'または[]を使用してみましたが、どれも役に立ちませんでした。私がこのエラーに不満を感じている理由は、2 つ以上の UNION 句を使用した場合にのみエラーが発生するためです。これはドライバーの潜在的なバグでしょうか?
ms-accessと32ビットドライバーを備えたwin-7 64ビットでmysql-64ビットを使用しています。複数のUNIONを使用して他のクエリを実行し、同じテーブルセットにアクセスできるため、アーキテクチャの問題ではないはずです。
これをさらにデバッグする方法について誰かが指針を与えることができれば素晴らしいことです。