Google
 
Web itpro-blogger.blogspot.com
日曜日, 12月 09, 2007

[SQL]同じ構造で複数テーブルのデータを取得

▼質問
同じ構造をしたテーブルが複数あるときに、SQLで簡単にデータを取得することはできないの?

▼回答
UNIONを使えばできるよ。重複行は削除されるから気をつけてね。

重複行を有効にしたい時は、UNION ALLにすればできるよ。

SELECT * FROM テーブル1 WHERE フィールド1 = 値 UNION SELECT * FROM テーブル2 WHERE フィールド1 = 値

ORDER BY フィールド1とすると次のようなエラーになるんだ。

ORA-00904: "フィールド1": 無効な識別子です。

どうしてなんだ?

*をしている時は、フィールド番号を指定しないと駄目なんだ。

SELECT * FROM テーブル1 WHERE フィールド1 = 値 UNION SELECT * FROM テーブル2 WHERE フィールド1 = 値 ORDER BY 1 asc

フィールド名をしてしたい時は、*に全てのフィールドを

指定してやる必要があるんだ。

わかったかい?!

SELECT フィールド1,フィールド2,フィールド3 FROM テーブル1 WHERE フィールド1 = 値 UNION SELECT フィールド1,フィールド2,フィールド3 FROM テーブル2 WHERE フィールド1 = 値 ORDER BY フィールド1 asc






Comments: コメントを投稿

<< Home

This page is powered by Blogger. Isn't yours?