PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
13562 | 00/10/16 14:11:37 | RE(5):PB6: テーブルの結合に関して:Part3 By ryochan |
13560 | 00/10/16 10:34:11 | RE(4):PB6: テーブルの結合に関して:Part3 By Dera |
13559 | 00/10/16 10:33:28 | RE(3):PB6: テーブルの結合に関して:Part2 By Dera |
13558 | 00/10/16 10:31:39 | RE(2):PB6: テーブルの結合に関して:Part1 By Dera |
13556 | 00/10/16 00:01:03 | RE(1):PB6: テーブルの結合に関して By ryochan |
13551 | 00/10/13 21:32:33 | PB6: テーブルの結合に関して By Dera |
カテゴリ:データウィンドウ
日付:2000年10月16日 00:01 発信者:ryochan
題名:RE(1):PB6: テーブルの結合に関して
Deraさん、こんばんは。
>A:主となるテーブル
>B:Aの明細テーブル
>C:商品マスタA(検索条件でのみ使用SELECTはしてません)
>D:商品マスタB(検索条件でのみ使用SELECTはしてません)
>
>?AとBは【A *= B】の関係が成り立ちます。
>?AとCは【A = C】の関係が成り立ちます。
>?BとDは【A = D】の関係が成り立ちます。
3.はB=Dの関係で検索するのですよね。
(でないと、問題にならないと思いますので。)
実際の検索例情報が無い為、
推測で判断しましたが、
以下の様なイメージでしょうか?
2.のJOINは問題ないと思いますので省きました。
勘違いしているかもしれないので
違っていたらコメント下さい。
A
管理番号
100
200
300
400
500
B
管理番号 明細番号 商品番号
100 1 a1
100 2 a2
200 1 a1
200 2 c1
400 1 a1
D
商品番号
a1
a2
a3
b1
b2
c1
検索
管理番号 明細番号 商品番号
100 1 a1
100 2 a2
200 1 a1
200 2 c1
300 null null
400 1 a1
500 null null
このようなイメージでしたら
WHERE A.管理番号 *= B.管理番号 and
B.商品番号 *= D.商品番号
で検索出来そうですが、どうでしょうか?
バージョンが6.5なので上記の書き方でOKだと
思いますが、
確か、外部結合について、MSSQL7.0からは*でJOINするのは
1つのペアしか許されていなく、
複合外部結合は
from (A LEFT OUTER JOIN B on A.管理番号 = B.管理番号)
LEFT OUTER JOIN D on B.商品番号 = D.商品番号
のようにfrom句でJOINしないと
エラーになったと思います。
バージョンアップ時には気をつけてください。
あと、外部結合演算子「*」はT-SQLの書き方なので、
これからは汎用的に書かれた方が
レスがしやすいかなと思います。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS Microsoft SQL Server Client 6.5
Browser (記載なし)
Server SoftWare
OS Windows NT 4.0
DBMS Microsoft SQL Server 6.5
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.