2009-03-12 6 views
1

私は3つのmysqlの4.0のテーブルを持っている:すべてのフィールドにVARCHAR(255)のいずれかであるID(int型)、タイプint型)と別のフィールド、tinyint型int型を持っています複数のテーブルからmysql 4.0データに最も早く参加する方法は?

これらをすべて書き出す必要があり、3つのDataTableをループしてループし、一時テーブル(.NET 1.1)に行を作成することになります。

このデータより速く/クリーナーな方法で結合するのか、このデータを書き出すだけですか?

答えて

1

実際に1つのクエリで3つのテーブルすべての結果を結合したり表示したいかどうかはわかりません。

あなただけフラットアウト結果を望んでいる場合は、あなたの最高の最高のような労働組合を行うには、次のようになります。

SELECT 
    ID, 
    Type, 
    Convert(varchar(255), Value) as Value 
FROM 
    table1 
UNION 
SELECT 
    ID, 
    Type, 
    Convert(varchar(255), Value) as Value 
FROM 
    table2 
UNION 
SELECT 
    ID, 
    Type, 
    Convert(varchar(255), Value) as Value 
FROM 
    table3 

注:あなたが最も安定したフォームを得ることができるように、私は変換をしています( varcharバージョン)の3つすべてのフィールドの。

+0

実際には変換しなくても機能しましたが、私は420の結果の代わりにこのように410を取得しているので心配しています - いくつかは重複しており、マージされていますか? – Spikolynn

+0

@ Spikolynn:暗黙的な変換がintおよび小さなint(またはvarcharsがintに変換しようとしている)で発生している可能性があります。変換が失敗した場合、結果セットから削除されます。 – TheTXI

+0

TheTXI:Valueの代わりにConvert(Value、char)を3回試してみましたが、まだ十分な結果が得られていません。私はあまり気にしません。アプリは、私が推測するように重複している場合、同じように動作する必要があるからです。 – Spikolynn

関連する問題