このエラーが発生し続けており、何が原因なのか理解できません。
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 '= '111-11-1111'' at line 1
これらのステートメントによってスローされています:
ps = conn.prepareStatement(
"SELECT * FROM courses WHERE NOT EXISTS"
+ "(SELECT * FROM courses"
+ "NATURAL JOIN register"
+ "WHERE ssn = ?)")
ps.setString(1,ssn);
rs = ps.executeQuery();
この正確なコマンドを文字ごとに (? を「111-11-1111」に置き換えたことを除いて) MySQl コマンド ライン クライアントに入力したところ、問題なく実行されました。しかし、Java で実行しようとすると、上記の構文エラーで失敗します。私は答えが非常に明白であり、私の顔を見つめているのではないかと沈んでいる疑いがありますが、疲れすぎてそれを見ることができません. 何かご意見は?
編集 だから私は当面の問題を解決しましたが、それは単により多くの質問をもたらします. クエリを複数行ではなく単一行の文字列として構成すると、次のようになります。
ps = conn.prepareStatement(
"SELECT * FROM courses WHERE NOT EXISTS (SELECT * FROM courses NATURAL JOIN register WHERE ssn = ?)");
それはうまく実行されます。(水平スクロール バーについては申し訳ありませんが、この場合は選択の余地がありません。) そこで、私の質問を言い換えます。違いがある場合は、Java 7、Netbeans 7.2、および MySQL 5.5 を使用しています。