したがって、4つのテーブルがあります。各テーブルには、前のテーブルIDに対して1つのIDがあります。私のクリックテーブルには、IDとそれが由来する広告のIDがあります。広告テーブルには、広告のIDと元のキャンペーンのIDがあります。そのため、例を示します。
Table4 -
id company table_id
11 hp 20
12 Apple 23
13 kohls 26
14 target 21
15 borders 28
Table3 -
id value table2_id
21 ks 53
22 al 54
23 tx 53
24 fl 55
25 co 51
Table2 -
id value table1_id
51 ks 34
52 al 34
53 tx 33
54 fl 35
55 co 31
Table1 -
id value
31 ks
32 al
33 tx
34 fl
35 co
そのため、表4の値がどこから来たのかを知るには、各テーブルを調べて、どのIDを持っているかを確認する必要があります。基本的に、表1のどの値が表4の値に関連付けられているかを知りたい。
ウェブサイトへの訪問者としての表4とインターネット広告としての表1のこれ。どの訪問者がどの広告から来たのか知りたい。残念ながら、データは設定されているため、訪問者からソース、広告グループ、広告まで1ステップしか戻れません。それは理にかなっていますか?
とにかく、4つの内部結合を使用することがこの問題の最適な戦略であるか、または私が知らないより簡単なmysqlソリューションがありますか?.
内部結合がおそらく最良の方法であり、必要なのは3だけです。
これにより、会社と関連する値の2つの列を持つ結果セットが得られます。
SELECT Table4.company, table1.id, table1.value
FROM Table1
INNER JOIN Table2
ON Table2.table1_id = Table1.id
INNER JOIN Table3
ON Table3.table2_id = Table2.id
INNER JOIN Table4
ON Table4.table3_id = Table3.id