如何在mysql中关联多个表

时间:2012-06-01 11:00:21

标签: mysql optimization query-optimization

我有5张桌子。多数民众赞成

maintable

id int(11)=>primary key auto increment,
name varchar(255)

subtable1

id int(11)=>primary key auto increment,
mainid int(11),
field1 varchar(255),
field2 varchar(255)

subtable2

id int(11)=>primary key auto increment,
mainid int(11),
field3 varchar(255),
field4 varchar(255)

subtable3

id int(11)=>primary key auto increment,
mainid int(11),
field5 varchar(255),
field6 varchar(255)

subtable4

id int(11)=>primary key auto increment,
mainid int(11),
field7 varchar(255),
field8 varchar(255)

这里mainid是所有表格的共同点。我想在一个页面中显示所有表格字段...在该页面中,我们得到名称作为输入...每个表包含大约5万条记录..

我可以如何有效地为上述情况编写查询?

2 个答案:

答案 0 :(得分:0)

如果您只想选择所有表中的所有字段而不进行任何过滤,则可以使用INNER JOINS进行相对简单的操作。

例如......

SELECT * FROM maintable INNER JOIN subtable1 ON subtable1.mainid = maintable.id INNER JOIN subtable2 ON subtable2.mainid = maintableid ... 

希望有所帮助

答案 1 :(得分:0)

SELECT
  mmaintable.colnames,
  subtable1.colnames,
  subtable2.colnames,
  subtable3.colnames,
  subtable4.colnames
FROM maintable
  LEFT JOIN subtable1
    ON subtable1.mainid = maintable.id
  LEFT JOIN subtable2
    ON subtable2.mainid = maintable.id 
      LEFT JOIN subtable3
    ON subtable3.mainid = maintable.id 
      LEFT JOIN subtable4
    ON subtable4.mainid = maintable.id