使用所有表中存在的用于链接数据的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