1

結合された列が必要な巨大なテーブル ( 300 万レコード) があります。この値は変更されません。

結合に基づいて列を追加するにはどうすればよいですか? 他にもいくつかのクエリがあります。結合を使用すると、プロセスが遅くなります。

元:

メインテーブル:

add_cod | name
 1      | alfa
 2      | beta
 1      | zeta

アドオン表:

cod | col_ext
 1  | jam
 2  | bam

結果はメイン テーブルになるはずですが、col_ext 列があります。

add_cod | name | col_ext
 1      | alfa |   jam
 2      | beta |   bam
 1      | zeta |   jam
4

2 に答える 2

2

これは単純JOINです。

SELECT  a.*, b.col_ext
FROM    main a
        INNER JOIN addon b
            ON a.add_cod = b.cod

テーブルに適切にインデックスを実装していれば、パフォーマンスについて心配する必要はありません。

SQLFiddle デモ

于 2012-10-24T15:52:29.090 に答える
2

以下を使用しますJOIN

select m.add_cod,
  m.name,
  a.col_ext
from main m
left join addon a
  on m.add_cod = a.cod

デモで SQL Fiddle を参照してください

結合を理解するのに助けが必要な場合は、ここに結合の優れた視覚的な説明があります

于 2012-10-24T15:53:04.960 に答える