1

まず、私が使用している MYSQL のバージョンは5.1.66-community-log.

邪魔にならないようになったので、以下のビューを作成しようとすると、次のエラーが表示されます。

SQL 構文にエラーがあります。使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

とビュー:

$sql = "Create or replace view userRank as 
select PRA.id, PRA.post_id as postID, PRA.user_id, PRA.vote_up, PRA.rank_date 
from post_rank_activity PRA
union all 
select RRA.id, RRA.reply_id as replyID, RRA.user_id, RRA.vote_up, RRA.rank_date 
from reply_rank_activity RRA";

いくつかのサイトをチェックしましたが、これは正しい構文のようです。または、時間の経過とともに何かが変更されましたか?

4

4 に答える 4

2

括弧が役立つ場合があります。試してください:

Create or replace view userRank as 
(select PRA.id, PRA.post_id as postID, PRA.user_id, PRA.vote_up, PRA.rank_date 
from post_rank_activity PRA)
union all 
(select RRA.id, RRA.reply_id as replyID, RRA.user_id, RRA.vote_up, RRA.rank_date 
from reply_rank_activity RRA)
于 2012-11-09T17:15:26.423 に答える
0

MySQL サイトでも取り上げられているバグのようです

http://bugs.mysql.com/bug.php?id=22044

于 2012-11-09T17:14:35.727 に答える
0

thisによると、あなたのすべては必要ありません。試してください:

Create or replace view userRank as select PRA.id, PRA.post_id as postID, PRA.user_id, PRA.vote_up, PRA.rank_date from post_rank_activity PRA union select RRA.id, RRA.reply_id as replyID, RRA.user_id, RRA.vote_up, RRA.rank_date from reply_rank_activity RRA;

そしてそれは動作するはずです - テストされていません。

于 2012-11-09T17:08:35.190 に答える
0

ユニオン すべてのセクションのすべての列は、名前とタイプが似ている必要があります

この二つは違う

  • PRA.post_id を postID として

  • RRA.reply_id を返信 ID として

于 2012-11-09T17:09:28.173 に答える