- PR -

SQL

投稿者投稿内容
スンパ
ベテラン
会議室デビュー日: 2005/05/23
投稿数: 85
投稿日時: 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を抽出したいです。
『ここ!!』をどう記述すれば良いでしょうか
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2006-07-28 12:33
「AAテブルの10 300を抽出したいです。 」だけなら、

『ここ!!』= a.no=10 and a.price=300

で、いいですよね?
例のデータだけなら、

『ここ!!』= a.price=300

も可。

BBテーブルは要らないじゃん!?
dodo
ベテラン
会議室デビュー日: 2004/05/12
投稿数: 99
お住まい・勤務地: 東京都渋谷区
投稿日時: 2006-07-28 12:35
RDBMSの種類が書いてないので何とも言えないけど、
minus, minus all を使ってみれば?

↓参考
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_kj06.htm
スンパ
ベテラン
会議室デビュー日: 2005/05/23
投稿数: 85
投稿日時: 2006-07-28 12:38
ご返事有り難うございます。

説明不足でした。

BBテーブルはAAテーブルの1世代前のデータを持っています。
ユーザー入力のデータがAAテブルに追加されるので
それを抽出したいのです
NIKE
会議室デビュー日: 2006/05/30
投稿数: 7
投稿日時: 2006-07-28 12:40
質問の意図が分からないのですが、
AAテーブルの[no][price]と
BBテーブルの[no][price]が
一致しないレコードを取得したいという意味ですか?

「AAテブルの10 300を抽出したいです。 」だけなら、
Java僧さんのいうとおりだと思いますが

スンパ
ベテラン
会議室デビュー日: 2005/05/23
投稿数: 85
投稿日時: 2006-07-28 12:42
すみません。

sqlserver 2005です。
スンパ
ベテラン
会議室デビュー日: 2005/05/23
投稿数: 85
投稿日時: 2006-07-28 12:44
NIKEさん
有り難うございます。

>>AAテーブルの[no][price]と
>>BBテーブルの[no][price]が
>>一致しないレコードを取得したいという意味ですか?

そうです。
宜しくお願い致します。
dodo
ベテラン
会議室デビュー日: 2004/05/12
投稿数: 99
お住まい・勤務地: 東京都渋谷区
投稿日時: 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なので、件数が多いときのパフォーマンスは非常に悪いと思う。

スキルアップ/キャリアアップ(JOB@IT)