- - PR -
WHERE句の条件設定について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-01-27 13:40
いつもお世話になっております。
いま、テーブル2つを結合したいのですが、 テーブルP…日付・ID・金額・区分・区分名 (35行) テーブルQ…日付・ID・金額・フラグ・フラグ名 (35行) PとQを結合して作りたいテーブル …日付・ID・金額・区分・区分名・フラグ・フラグ名 (35行) PとQの日付・ID・金額はデータ1個1個の並び順も全く一緒で 形としてはテーブルPにテーブルQのフラグ・フラグ名の2列をくっつけたいのですが 条件の設定ができていないため結合してできたテーブルは50行や65行になってしまいます。 例えばWHEREの条件を下記のように設定するとできたテーブルは50行になります。↓ SELECT DISTINCT P.日付, P.ID ,P.金額, P.区分, P.区分名, Q.フラグ, Q.フラグ名 FROM P,Q WHERE P.日付=Q.日付 ; 何がダブっているかというと・・・・ +------+------+----------+ | 金額 | 区分 | フラグ | +------+------+----------+ | 1300 | 20 | 0 | | 1300 | 50 | 0 | | 1300 | 30 | 1 | +------+------+----------+ 結果としてほしいテーブルにおいて上の表のようなとき、上記のSELECT文を実行すると・・・ +------+------+----------+ | 金額 | 区分 | フラグ | +------+------+----------+ | 1300 | 20 | 0 | | 1300 | 50 | 0 | | 1300 | 30 | 0 | | 1300 | 20 | 1 | | 1300 | 50 | 1 | | 1300 | 30 | 1 | 金額1300に対して区分は20,30,50の3通り、フラグは0,1の2通りある事からなのか、 6行出てきてしまいます。 これを解消する為にWHEREにどういう条件文を入れればいいのかがわかりません。 どなたかご教授いただけないでしょうか? |
|
投稿日時: 2005-01-27 14:02
P,Qテーブルは(日付,ID,金額)でユニークになるんですよね? であれば、 SELECT DISTINCT P.日付, P.ID ,P.金額, P.区分, P.区分名, Q.フラグ, Q.フラグ名 FROM P,Q WHERE P.日付=Q.日付 AND P.ID=Q.ID AND P.金額=Q.金額 ; ですよね? |
|
投稿日時: 2005-01-27 14:53
ishi様コメントありがとうございました。
どういう条件でユニークになるか、がぬけていました。 ご教授ありがとうございました。 ほしいテーブルを作ることができました。 基礎を固めて、もっと身のある質問ができるよう学習します。 いつもありがとうございます。 |
1