所以我有四个桌子。每个表都有一个与前一个表ID相同的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中的内容是互联网广告。我想知道哪些访客来自哪些广告。不幸的是,这些数据是经过设置的,因此我只能从访问者到源代码再到广告组再到广告一步。那有意义吗?
无论如何,我想知道是否使用4个内部连接是解决此问题的最佳策略,还是我不知道有没有一些更简单的mysql解决方案。
内部联接可能是最好的方法,您只需要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