初めて自分の家と他人の家が違う、と意識した時

テーブルA
テーブルB
があり、そのクエリ
クエリA
クエリB
を作ってあります。


クエリA
フィールドA1
フィールドA2

クエリB
フィールドB1
フィールドB2

結合は、クエリAのフィールドA1 ⇒ クエリBのフィールドB1 としており、
実行結果としては、以下のようになって抽出されます。


クA:フィA1|クA:フィA2|クB:フィB1|クB:フィB2
a       |J      |(空)    |(空)
a       |J      |(空)    |(空)
a       |K      |(空)    |(空)
b       |L      |(空)    |(空)
b       |L      |(空)    |(空)
b       |M      |(空)    |(空)
b       |M      |(空)    |(空)
c       |X      |c      |P
c       |X      |c      |P
c       |X      |c      |Q
c       |X      |c      |Q
c       |X      |c      |Q
d       |Y      |d      |R
d       |Y      |d      |S
d       |Y      |d      |S


これを踏まえて、
重複を除いた形での実行結果として得たいパターンは以下の2つです。

<パターン(1)>
クA:フィA1|
a       |
b       |
c       |
d       |
※他のフィールドは必要無し。

<パターン(2)>
クA:フィA1|クA:フィA2|クB:フィB1|クB:フィB2
a       |J      |(空)    |(空)
a       |K      |(空)    |(空)
b       |L      |(空)    |(空)
b       |M      |(空)    |(空)
c       |X      |c      |P
c       |X      |c      |Q
d       |Y      |d      |R
d       |Y      |d      |S
※4フィールドが同一になるところだけ除きたい


恐縮なのですが、この2パターンのSQLをご教授いただけると助かります。
よろしくお願い致します。

A 回答 (2件)

肝心のテーブルの情報がありませんが


適当に想像して回答します

パターン1はテーブルAからフィールドA1を重複なしに取り出すだけですね
SELECT DISTINCT thubanA.A1
FROM thubanA;

パタ-ン2も単に今のクエリから重複を除いてやるだけでいいのでは

SELECT DISTINCT thubanA.A1, thubanA.A2, thubanB.B1, thubanB.B2
FROM thubanA LEFT JOIN thubanB ON thubanA.A1 = thubanB.B1;
    • good
    • 1
この回答へのお礼

自分でもSQLについていろいろ調べて、ご回答いただく前にDISTINCTを指定することで解決しました。お騒がせいたしました。
ありがとうございました。

お礼日時:2008/10/07 21:09

以下の例を参考にしてください。



<パターン(1)>
SELECT フィールドA1
FROM テーブルA
GROUP BY フィールドA1

<パターン(2)>
今のクエリに以下のように「DISTINCT」を追加すれば、良いと思います。

SELECT DISTINCT TA.A1,TA.A2,TB.B1,TB.B2
FROM テーブルA AS TA,テーブルB AS TB
WHERE TA.フィールドA1 = TB.フィールドB1
    • good
    • 1
この回答へのお礼

自分でもSQLについていろいろ調べて、ご回答いただく前にDISTINCTを指定することで解決しました。お騒がせいたしました。
ありがとうございました。

お礼日時:2008/10/07 21:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報