1

次の問題があります。

DBには、2つのテーブルがあります。最初のテーブルの 1 つの列の値が、2 番目のテーブルの 2 つの異なる列に表示される場合があります。

したがって、構成は次のとおりです。

TABLE_A: 列 Print_group TABLE _B: 列 Print_digital および Print_offset

Table_A の異なる行と Print_group 列からの値は、Table_B の 1 つの行に表示されますが、異なる列に表示されます。

次のクエリがあります。

SELECT DISTINCT * FROM Table_A 
INNER JOIN  B ON (Table_A. Print_digital = Table_B.Print_group OR 
Table_A.Print_offset = Table_B.Print_group)

問題は、このクエリが Table_A から同じ行を 2 回返すことです。

私が間違っていることは何ですか?適切なクエリは何ですか?

ご協力ありがとうございました

4

2 に答える 2

0

私があなたの質問を正しく理解している場合は、フィールドを明確にする必要がありますTable_A

SELECT DISTINCT A.* 
FROM Table_A A 
    INNER JOIN B ON A.Print_digital = B.Print_group
        OR A.Print_offset = B.Print_group

編集:

あなたのコメントを考えると、あなただけが必要なようですSELECT DISTINCT B.*

SELECT DISTINCT B.* 
FROM Table_A A 
    INNER JOIN B ON A.Print_digital = B.Print_group
        OR A.Print_offset = B.Print_group
于 2013-10-07T00:20:15.320 に答える