私は3つのテーブルを持っています.2つのテーブルには200,000レコードがあり、別のテーブルには1,800,000レコードがあります。私はOCN and TIMESTAMP(month,year)
という2つの制約を使ってこれらの3つのテーブルをマージします。最初の2つのテーブルには月と年の列がMonthx(月、日、年の両方を含みます)として表示されます。毎月と毎年の別々の列として他のテーブル。私はので、私は報復に'%b'
を与えた(..そのはまだuは、このクエリが正しいか間違っているか教えてください、私に正確なクエリを提供running.could前に、私はこのクエリに4daysを与えた1,700万レコードからなるマージテーブル
mysql--> insert into trail
select * from A,B,C
where A.OCN=B.OCN
and B.OCN=C.OCN
and C.OCN=A.OCN
and date_format(A.Monthx,'%b')=date_format(B.Monthx,'%b')
and date_format(A.Monthx,'%b')=C.IMonth
and date_format(B.Monthx,'%b')=C.month
and year(A.Monthx)=year(B.Monthx)
and year(B.Monthx)=C.Iyear
and year(A.Monthx)=C.Iyear
、としてクエリを与えましたCテーブルには、月がJAN、MARの形式の列があります)。
暗黙の 'where'を使用しないでください。1989年にそれが所属する場所に埋め込みます。明示的な結合を使用する代わりに、 'select * from inner join b on(a.ocn = b.ocnとdate_format(A.Monthx、'%b ')= date_format(B.Monthx、'%b ').... ' – Johan