• 締切済み

natural join句、using句ではなぜ表名修飾ができないのでしょうか?

natural join句、using句を用いた結合文では、 なぜ結合列を表明で修飾してはいけないのでしょうか? 仕様だと言われてしまえばそれまでなのですが、 どうしてそのような仕様になっているのか、内部動作が気になります。 ご存知の方がいらっしゃったら教えてください。

みんなの回答

  • root139
  • ベストアンサー率60% (488/809)
回答No.1

「表明」は「表名」の誤変換ですね? NATURAL JOIN は、「両テーブルの同名の列の値が同じものを結合」するという意味ですね。そもそも結合列を指定しない結合方法として定義されている訳です。 USING(a) は、「両テーブルのa列の値が同じものを結合」という意味ですよね。このaは両方のテーブルの列を指しているので、どちらかのテーブルの列という訳ではありません。 ですから、表名で修飾してはいけないのです。

nemusakana
質問者

お礼

「表明」は「表名」の誤変換です、失礼しました。 確かにおっしゃる通りですね。 非常にわかりやすく説明していただき、ありがとうございました!