ここでもう一度助けを求めてください。
気が狂いそうです。
注: 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 :(
回答ありがとうございます
カルロ