- - PR -
SQL
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-07-28 12:16
ご質問させていただきます。
AAテブル no price 10 100 10 200 10 300 BBテブル 10 100 10 200 select a.no, a.price from AA a, BB b where ここ!! のSQL文で、 AAテブルの10 300を抽出したいです。 『ここ!!』をどう記述すれば良いでしょうか |
|
投稿日時: 2006-07-28 12:33
「AAテブルの10 300を抽出したいです。 」だけなら、
『ここ!!』= a.no=10 and a.price=300 で、いいですよね? 例のデータだけなら、 『ここ!!』= a.price=300 も可。 BBテーブルは要らないじゃん!? |
|
投稿日時: 2006-07-28 12:35
RDBMSの種類が書いてないので何とも言えないけど、
minus, minus all を使ってみれば? ↓参考 http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_kj06.htm |
|
投稿日時: 2006-07-28 12:38
ご返事有り難うございます。
説明不足でした。 BBテーブルはAAテーブルの1世代前のデータを持っています。 ユーザー入力のデータがAAテブルに追加されるので それを抽出したいのです |
|
投稿日時: 2006-07-28 12:40
質問の意図が分からないのですが、
AAテーブルの[no][price]と BBテーブルの[no][price]が 一致しないレコードを取得したいという意味ですか? 「AAテブルの10 300を抽出したいです。 」だけなら、 Java僧さんのいうとおりだと思いますが |
|
投稿日時: 2006-07-28 12:42
すみません。
sqlserver 2005です。 |
|
投稿日時: 2006-07-28 12:44
NIKEさん
有り難うございます。 >>AAテーブルの[no][price]と >>BBテーブルの[no][price]が >>一致しないレコードを取得したいという意味ですか? そうです。 宜しくお願い致します。 |
|
投稿日時: 2006-07-28 12:57
SQLServer2000で確認しました。
select [no], price from AA where not exists(select * from BB where BB.no = AA.no and BB.price = AA.price) でもTableScanなので、件数が多いときのパフォーマンスは非常に悪いと思う。 |