Подтвердить что ты не робот

Несколько внутренних соединений с несколькими таблицами

Итак, у меня есть четыре таблицы. Каждая таблица имеет один идентификатор для предыдущего идентификатора таблицы. Таким образом, моя таблица с кликом имеет идентификатор и идентификатор для объявления, из которого оно появилось. В таблице объявлений у него есть идентификатор для объявления и один для кампании. Итак, вот пример.

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, мне нужно вернуться через каждую таблицу и проверить, какой из них имеет. В принципе, я хочу знать, какие значения в таблице 1 связаны со значениями в таблице 4.

Это таблица 4 в качестве посетителей веб-сайта и таблицы 1 в качестве интернет-рекламы. Я хочу знать, какие посетители пришли из объявлений. К сожалению, данные настроены таким образом, что я могу сделать только один шаг назад от посетителя до источника в группу объявлений. Это имеет смысл?

В любом случае, мне интересно, была ли оптимальная стратегия для этой проблемы, если использовать 4 innner join, или есть более простое решение mysql, о котором я не знаю.

4b9b3361

Ответ 1

Внутренние соединения, вероятно, лучший метод, и вам нужно только 3.

Это даст вам набор результатов с двумя столбцами: компанией и связанными значениями.

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