0

我有 5 张桌子。那是

主表

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

子表1

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

子表2

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

子表3

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

子表4

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

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

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

4

2 回答 2

0

如果您只想从所有表中选择所有字段而不进行任何过滤,那么使用 INNER JOINS 相对简单。

例如 ...

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

ETC

希望有帮助

于 2012-06-01T11:11:37.500 回答
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 
于 2012-06-25T07:25:38.067 回答