0

ここでもう一度助けを求めてください。

気が狂いそうです。

注: ID という用語を使用するときは、自動インクリメントなしの ID を指します。各 ID は顧客を識別します

私は4つの異なるテーブルを持っています。

一意の ID を持つ 1° テーブル (12.000 レコード)。このテーブルは、名、姓、生年月日、住所、メールなどに使用されます

2° 最初の同じ一意の ID を持つテーブル (12.000 レコード/同じ値)。このテーブルは、フィードバックなどの他のタイプのデータに使用されます

一意の ID を持つ 3° テーブルで 12.000 と表示されているのは 10 だけですが、1° テーブルと 2° テーブルの値は同じです。このテーブルは、ID を管理するユーザーに ID を割り当てるために使用されます。

4° 一意の ID を持たないテーブル。約6,000件のレコード。このテーブルには同じ ID 値がありますが、同じ ID の数は 1 から 5 です。このテーブルは顧客の購入に使用されます。そのため、同じ ID で購入データ、日付/時刻などが異なるレコードがさらにあります。

表 1. (同数の固有 ID) CustomersMaster

ID        |Name     |Surname   |mail          |
----------|---------|----------|--------------|
40302025  |Jack     |  Daniel  |  m1@site.com |
40302028  |Martin   |  Scorzese|  m2@site.com |
40302030  |Donald   |  Duck    |  m3@site.com |
40302055  |Eric     |  Clapton |  m4@site.com |
40302074  |Mark     |  Knopfler|  m5@site.com |

表 2. フィードバック (表 1 と同じ数の一意の ID)

ID        |Feedback |
----------|---------|
40302025  |  10     |
40302028  |  8      |
40302030  |  7      |
40302055  |  9      |
40302074  |  10     |

表 3. CustomersToUsers (固有 ID の数が異なる)

ID        |managed_by|
----------|----------|
40302025  |User001   |
40302028  |User002   |
40302055  |User004   |
40302074  |User004   |

表 4.購入。(同じIDでも番号が違う、例のようにIDが存在しない場合もある)

たとえば、このテーブルでは、顧客が製品を購入していないため、ID 40302074 は存在しません。

ID        |ProductCode|
----------|-----------|
40302025  |505        |
40302025  |510        |
40302025  |300        |
40302025  |305        |
40302028  |505        |
40302028  |545        |
40302028  |515        |
40302028  |212        |
40302028  |121        |
40302030  |510        |
40302030  |510        |
40302030  |510        |
40302030  |510        |
40302055  |300        |
40302055  |300        |
40302055  |300        |

今。私は使用しようとしましたLEFT OUTER JOIN.


SELECT A.NAME, A.SURNAME, A.MAIL, B.FEEDBACK, C.MANAGED_BY, D.PRODUCTCODE 
FROM 


    CUSTOMERSMASTER AS A 

    LEFT OUTER JOIN

    FEEDBACKS AS B ON A.ID = B.ID

    LEFT OUTER JOIN

    CustomersToUsers AS C ON B.ID = C.ID

    LEFT OUTER JOIN

    Purchases AS D ON C.ID = D.ID

結果は行数が少なくなりますが、クエリから Purchase テーブルを削除すると ( onSELECTおよび on LEFT OUTER JOIN)、結果は OK です

なにこれwooooooong :(

回答ありがとうございます

カルロ

4

3 に答える 3

0

最後の結合条件のA.ID = D.ID代わりに使用します。C.ID = D.ID

A のレコードの多くは C に関連レコードがないため、C.id は null になり、....

于 2013-06-10T17:27:50.203 に答える