PostgreSQL での from句内記述の省略?
2004年6月9日 コンピュータ試行錯誤で SQL文を検討していて
実行した SQL文の結果の行が異様に多かった。
SQL文を見直してみると
SELECT
A.a,b,c
FROM
B
INNER JOIN C
USING (d);
みたいな SQL文で、
テーブルA を結合していたが、
削除した際に Field List から削除し忘れていた。
・・・って、普通これって
エラーになると思うんだけど。。。
ためしに
SELECT A.a;
とするとテーブルA の aフィールドを取ってきた。
で、先のはテーブルA とのクロスジョインとなり、
件数が爆発したのだった。
・・・って変。
PostgreSQL のオンラインマニュアル
(http://www.postgresql.jp/document/pg742doc/html/sql-select.html)
を見るとこういう書き方は PostgreSQL ではいいらしい。
歴史上の名残?オブジェクト指向的な思考によるもの?
確かに便利だが、どうも気持ち悪い。
プログラム中ではつかわないようにしておこう。
実行した SQL文の結果の行が異様に多かった。
SQL文を見直してみると
SELECT
A.a,b,c
FROM
B
INNER JOIN C
USING (d);
みたいな SQL文で、
テーブルA を結合していたが、
削除した際に Field List から削除し忘れていた。
・・・って、普通これって
エラーになると思うんだけど。。。
ためしに
SELECT A.a;
とするとテーブルA の aフィールドを取ってきた。
で、先のはテーブルA とのクロスジョインとなり、
件数が爆発したのだった。
・・・って変。
PostgreSQL のオンラインマニュアル
(http://www.postgresql.jp/document/pg742doc/html/sql-select.html)
を見るとこういう書き方は PostgreSQL ではいいらしい。
歴史上の名残?オブジェクト指向的な思考によるもの?
確かに便利だが、どうも気持ち悪い。
プログラム中ではつかわないようにしておこう。