如何在mysql中关联多表

如何在mysql中关联多表,mysql,optimization,query-optimization,Mysql,Optimization,Query Optimization,我有5张桌子。是的 主表 子表1 子表2 子表3 子表4 这里,mainid是所有表的通用ID。我想在一页中显示所有表字段。。。在该页面中,我们将名称作为输入。。。每个表包含大约500万条记录 如何有效地为上述情况编写查询?如果您只想从所有表中选择所有字段,而不进行任何筛选,那么使用内部联接相对简单 例如 SELECT * FROM maintable INNER JOIN subtable1 ON subtable1.mainid = maintable.id INNER JOIN subta

我有5张桌子。是的

主表 子表1 子表2 子表3 子表4 这里,mainid是所有表的通用ID。我想在一页中显示所有表字段。。。在该页面中,我们将名称作为输入。。。每个表包含大约500万条记录


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

如果您只想从所有表中选择所有字段,而不进行任何筛选,那么使用内部联接相对简单

例如

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

希望有帮助

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 
id int(11)=>primary key auto increment,
mainid int(11),
field3 varchar(255),
field4 varchar(255)
id int(11)=>primary key auto increment,
mainid int(11),
field5 varchar(255),
field6 varchar(255)
id int(11)=>primary key auto increment,
mainid int(11),
field7 varchar(255),
field8 varchar(255)
SELECT * FROM maintable INNER JOIN subtable1 ON subtable1.mainid = maintable.id INNER JOIN subtable2 ON subtable2.mainid = maintableid ... 
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