プロが教えるわが家の防犯対策術!

現在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)

A 回答 (3件)

MySQLってサブクエリつかえましたっけ?



Todoリストにはいっているのですが。

参考URL:http://www.mysql.com/documentation/mysql/bychapt …
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/07/24 12:17

JOINは駄目?


select user.CREATE_DATE from user , customer where user.cust_id = customer.cust_id and customer.memo = 'memo';
というは駄目ですか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/07/25 08:37

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は使っておりませんので出来なかったらあしからず。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/07/24 12:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!