0

私は5つのテーブルを持っています。それは

メンテナンス可能

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はすべてのテーブルに共通です。すべてのテーブルフィールドを1ページに表示したい...そのページでは、入力として名前を取得します...各テーブルには約5万ルピーのレコードが含まれています。

上記の状況のクエリをどれだけ効果的に書くことができますか?

4

2 に答える 2

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 に答える
0

何もフィルタリングせずにすべてのテーブルからすべてのフィールドを選択するだけであれば、INNER JOINS を使用するのは比較的簡単です。

例えば ​​...

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

それが役立つことを願っています

于 2012-06-01T11:11:37.500 に答える