使用所有表中存在的用於鏈接數據的id從3個表中獲取記錄的最有效方法是什麼?mysql查詢的最佳方法:使用id獲取多個表中的記錄
第一張表:id不是主鍵。許多記錄具有相同的id值。此表的主鍵是「primary_id」
二表:id爲主鍵
三表:id爲主鍵
所以我們有很多一對一的關係第一張桌子上的其他兩個表「ID」。當然,第二個到第三個表在「id」上有一對一的關係,因爲「id」是它們的主鍵。
我要選擇從第一臺5次的記錄(可以說爲了通過先表primary_id ASC - 不跨表共享ID),但我也想從其他兩個表中的記錄。
我應該得到
table1.primary_id | table1.id | table1.some_data | table2.some_data | table3.some_data
--------------------------------------------------------------------------------------
1 | 22 | oranges | fruit seller | company
4 | 22 | watermelons | fruit seller | company
13 | 22 | bananas | fruit seller | company
15 | 22 | pears | fruit seller | company
19 | 22 | beans | fruit seller | company
,你可以理解,表2中,其中id是主鍵,ID = 22已經some_data =販夫走卒,並在表3其中id是主鍵,ID = 22 some_data = company
我應該如何使用表1的primary_id獲得前5條記錄,並從另外兩個表中獲取記錄,例如我演示的?
A加入?子查詢?我關心的是性能。
'JOIN''s通常有更好的表現。 – luksch 2013-05-11 15:01:54
你有'table1.id'上的索引嗎? – 2013-05-11 15:10:57
@MarkBannister我可以創建儘可能多的索引,因爲INSERTS很少見。是的,可以有一個索引。和其他任何索引。特別是我已經索引table1.id列 – Sharky 2013-05-11 15:14:33