ビュー作成時のエラー

このQ&Aのポイント
  • データベースの実装で3つのテーブルを作成しましたが、ビュー作成時にエラーが発生します。
  • エラーメッセージには「syntax error」が表示されています。
  • このエラーの解決方法を教えていただきたいです。
回答を見る
  • ベストアンサー

ビュー作成時のエラー

データベースの実装で、初めに3つのテーブル(memberInfor,goodsInfor,orderInfor)を作りました。次に、ビュー作成で create view result_list as select memberInfor.membernum, memberInfor.name, goodsInfor.goodsname, orderInfor.orderday, orderInfor.number from memberInfor join goodsInfor join orderInfor on memberInfor.membernum=orderInfor.membernum and goodsInfor.goodsname=orderInfor.goodsname; ERROR: syntax error at or near ";"(文字位置: 277) 1行目:...for.membernum and goodsInfor.goodsname=orderInfor.goodsname;                                     ^ このように、実行するとエラーが出てしまいます。この解決方法が分かりません。どなたか教えていただけませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

> memberInfor join goodsInfor join orderInfor > on memberInfor.membernum=orderInfor.membernum > and goodsInfor.goodsname=orderInfor.goodsname; は orderInfor join memberInfor on memberInfor.membernum=orderInfor.membernum join goodsInfor on goodsInfor.goodsname=orderInfor.goodsname; ではないですか?

sinsuki12
質問者

お礼

回答ありがとうございました。 無事にビュー作成をすることができました。

関連するQ&A

  • MySQLのCREATE VIEWがうまく動作しません。

    SQL初心者です。今回仕事で使う事になり、Win98に MySQL Ver3.23.51をインストールしたのですが、 CREATE VIEW文がうまく動作しません。 例えば MAIN と言うテーブルが存在する時に MySQLプロンプト上で SELECT * FROM MAIN; とやるとちゃんと動作して表示してくれるのですが、 これをTEMPと言うビューを作成したい場合に CREATE VIEW TEMP AS SELECT * FROM MAIN; とやると ERROR 1064: You have an error in your SQL syntax near \'VIEW TEMP AS SELECT * FROM MAIN\' at line 1 と出て来てしまいます。文法的には間違ってないはずなのですが、何がいけないのでしょうか?MySQLはCREATE VIEW文をサポートしていないのでしょうか? 周りに詳しい人間がいないので、原因がわからなくて つまづいています。どうかよろしくお願いします.

  • CSEでのデータベース作成時のエラーについて

    こんばんは。 PostgreSQLについて質問させてください。 CSEを使ってSQLの勉強をしていますが、 データベースを作成した際に、 WARNING: nonstandard use of escape in a string literal at character 42 WARNING: LOCATION is not supported anymore という表示がされ、 その後、テーブル作成などをすると エラーになり実行できません。 例えば、 create table テーブル名( id number(8) primary key, name char(10), birth date ) ; を実行した際に、 SQL実行中に以下のエラーが発生しました。 ERROR: syntax error at or near "(" at character 32 というエラーになります。 この原因は、Encodingの問題だと思っていますが、 どのように解決したらいいか教えてください。 また、Encodingの問題ではない場合は その際の対処法を教えてください。 以上、ご回答のほどお願いいたします。

  • PHP+MySQL syntaxエラー

    SELECT * FROM option WHERE id='W01' SELECT * FROM option WHERE id='A01' を実行させたところ You have an error in your SQL syntax near 'option WHERE id='W01'' at line 1 You have an error in your SQL syntax near 'option WHERE id='A01'' at line 1 というエラーが返ってきました。 optionテーブルがあり、idというフィールドもあり、 idフィールドでW01、A01ともに存在します。 どなたかお答え頂ければと思います。

    • ベストアンサー
    • MySQL
  • MySQLのサブクエリーでエラーがでます

    現在MySQLを使って開発をしています。 SQLもMySQLもまだあまり使ったことがないのでなにか大きな勘違いをしている かもしれませんが、自分で作ったデータベースにMysqlコマンドでアクセスし、 以下のようにselectを行うとsyntaxエラーが発生します。 mysql> select CREATE_DATE from user where cust_id = (select cust_id from customer where memo = 'memo'); ERROR 1064: You have an error in your SQL syntax near 'select cust_id from customer where memo = 'memo')' at line 1 しかしサブクエリーの内容も、その前のselectもそれぞれ下記のように単体で実行すると正常に動作するので、文法的には間違っていないと思います。 ERROR 1064のsyntaxエラーは何を指しているのでしょうか? ぜひご教示ください。 mysql> select cust_id from customer where memo = 'memo'; +---------+ | cust_id | +---------+ | 1 | +---------+ 1 row in set (0.00 sec) mysql> select CREATE_DATE from user where cust_id = '1'; +-------------+ | CREATE_DATE | +-------------+ | 2001-07-23 | +-------------+ 1 row in set (0.00 sec)

  • createdbでいきなりつまづいております。

    初めまして、データベースを覚えようと、Windows 2000にPostgreSQL8.1を入れて見ました。 まずはテスト用のデータベースを作ろうとユーザー postgres で createdb test;とやると EREOE: syntax error at or near "createdb" at character 1 LINE 1: createdb test; となります。いろいろ試して create database test; で作る事が出来たのですが その test データベースに移動するつもりで psql test; とやると又 ERROR: syntax reeoe at or near "psql" at character 1 LINE 1: psql test; となります。文字コード関係のエラーかな?と、エンコーディングをEUCからutf8に変えて インストールし直して見ましたが同じエラーが出ました。 createdb test;ですんなりtestデータベースを作るためにはどの様にしたらよいのでしょうか? 分かる方がいましたら、よろしくお願いします。

  • ストアドプロシージャ作成時のエラーについて

    お世話になっております。 CREATE PROCEDURE AAA (IN param INT) BEGIN SELECT CD, NAME FROM TBL WHERE TBL_KEY = param; END INTEGER型の引数を渡してVARCHAR型のCD、NAMEを取り出す程度のストアドプロシージャを作成しようとすると 1303 - Can't create a PROCEDURE from within another stored routine. なるエラーが表示されて作成ができません。 このエラーの理由についてコメント頂ければ幸いです。

    • ベストアンサー
    • MySQL
  • MySQLでのエラー

    MySQLのコマンド画面で、データベースを作成しています。 そこで、WEB上を参考にして打ち込んでみたところ ERROR 1064: You have an error in your SQL syntax. Check the manual that corresp onds to your MySQL server version for the right syntax to use near ')' at line 1 とでます。 僕が打ち込んだ文は以下のとおりです。 mysql> create database odinms; です。 間違いなどがあればご指摘お願いします。

  • like文の書き方を教えてください。

    テキストボックスを作成して入力した値がデータベースに 格納されている場合表示されるSQL文を書いていますが syntaxエラーになってしまい原因がわかりません。 String name = request.getParameter("name"); //入力された名前 String sql = new String(); <%-- SQL文 --%> sql += " select * from data "; sql += " where name "; sql += " like" + "('%" + s_name + "%')"; sql += " ) "; <input type="text" name="name" value=""> //textBox エラー表示 8番目: SQL = select * from data where name like('%i%') ) 9番目: ResultSetに格納失敗 : java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1  となってしまいます。 コマンドプロンプト上で select * from data where name like('%itou%'); この場合はちゃんと表示されます。 お分かりになる方よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • PHP+MySQL SQL文を外部ファイル化したい。

    表題のとおりなのですが… $result = mysql_query( "SELECT * FROM FOO" ); では、動作しています。 このセレクト文を、selectFOO.sql として外部ファイル化し、 (ファイルの中身は、「SELECT * FROM FOO」) $result = mysql_query( selectFOO.sql ); とすると、 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'selectFOO.sql' at line 1 が返ってきます。 SQL文が正しくないよ。マニュアル見てね。 と言われてるのは分かるのですが、 マニュアルのどこを見れば良いのかさえ分かりません。 助けてください。 よろしくお願いします。

    • 締切済み
    • PHP
  • MySQLのエラーの意味

    お世話になります。 | Field | Type | Key | ------------------------------ | ID | int(11) | PRI | | NAME | varchar(50) | | | BIKO | varchar(100) | | とテーブルを作成し、 データの中身を | ID | NAME | BIKO | +----+--------+------+ | 1 | あああ | なし | | 2 | いいい | | | 3 | ううう | なし | と作成しました。 このテーブルを元に同じデーブルに新しいテーブルを作成しようと思っているのですが、 1)INSERT INTO kadai_table (ID,NAME) SELECT ID , NAME FROM kadai _table; とすると Duplicate entry '1' for key 1 というエラーがかえってきます。 2)INSERT INTO kadai_table (ID,NAME,BIKO) SELECT ID , NAME , BIKO FROM kadai _table; とすると Duplicate entry '0' for key 1 というエラーで テーブルが | ID | NAME | BIKO | +----+--------+------+ | 1 | あああ | なし | | 2 | いいい | | | 3 | ううう | なし | | 0 | あああ | なし | となってしまいます。 3)INSERT INTO kadai_table (ID,NAME) SELECT (ID,NAME) FROM kadai_table; とすると ERROR 1064: You have an error in your SQL syntax. Check the manual that corresp onds to your MySQL server version for the right syntax to use near 'NAME) FROM k adai_table' at line 1 とかえってきます。 3)のエラーの原因は構文の記述ミス・・・?と考えているのですがはっきりとしていません。 初歩的な問題なのでしょうが、googleなどで調べてみても思うようなエラーの原因が理解できません。 どなたか教えていただけないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL