• ベストアンサー

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)

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

  • ベストアンサー
  • trinity
  • ベストアンサー率40% (4/10)
回答No.1

MySQLってサブクエリつかえましたっけ? Todoリストにはいっているのですが。

参考URL:
http://www.mysql.com/documentation/mysql/bychapter/manual_TODO.html#TODO_future
volv
質問者

お礼

サブクエリーが使えないDBってあったんですね・・!! ありがとうございました。m(__)m

その他の回答 (2)

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.3

JOINは駄目? select user.CREATE_DATE from user , customer where user.cust_id = customer.cust_id and customer.memo = 'memo'; というは駄目ですか?

volv
質問者

お礼

たしかに上記の通りでできました。ありがとうございます。 たしかに知人からもjoinを使えばできるはず、と指摘を受けていたところ なのでjoinについても勉強してみます。 現在はとりあえず最初に書いたサブクエリーを先に実行し、その結果を 再びselectするという2段階でやっていました。

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.2

select CREATE_DATE from user where cust_id = (select cust_id from customer where memo = 'memo'); ではなく select CREATE_DATE from user where cust_id in (select cust_id from customer where memo = 'memo'); ではないですか? それか EXISTS ではないですか? JOINでもいいと思いますが... なおMySQLは使っておりませんので出来なかったらあしからず。

volv
質問者

お礼

お返事ありがとうございます。 残念ながら、inとexistを試してみましたが、どちらもダメでした・・

関連するQ&A