MySQL を使用して複数のテーブルのデータを新しいテーブルにマージする
問題:
作成新しい MySQL テーブルは、人物、分類、詳細という 3 つの既存のテーブルの特定のデータと列を組み合わせたものです。目標は、姓、名、電子メール、年齢などの選択した属性を含むテーブルを作成することです。
必要なテーブル構造:
ID | Last Name | First Name | Age | |
---|---|---|---|---|
1 | Smith | Fred | Fred@.. | 36 |
2 | Jones | Tom | Tom@.. | 29 |
3 | Doe | Jane | Jane@.. | 27 |
解決策:
これを達成するには、3 つの要素に対して 3 方向の JOIN を実行します。 tables:
CREATE TABLE new_table AS SELECT p.*, d.content AS age FROM people AS p JOIN details AS d ON d.person_id = p.id JOIN taxonomy AS t ON t.id = d.detail_id WHERE t.taxonomy = 'age';
このクエリは、一致する ID に基づいて人物、詳細、分類テーブルのデータを結合します。結合されたテーブルから目的の列 (id、last_name、first_name、email、および age) を選択します。
代替方法:
すでに new_table を作成している場合テーブルにデータを挿入するには、次のクエリを使用します。
INSERT INTO new_table (id, last_name, first_name, email, age) SELECT p.id, p.last_name, p.first_name, p.email, d.content AS age FROM people AS p JOIN details AS d ON d.person_id = p.id JOIN taxonomy AS t ON t.id = d.detail_id WHERE t.taxonomy = 'age';
Multiple属性:
3 つのテーブルの複数の属性を含めるには、属性ごとに個別の JOIN を実行できます。
CREATE TABLE new_table AS SELECT p.*, d1.content AS age, d2.content AS gender, d3.content AS height FROM people AS p JOIN details AS d1 ON d1.person_id = p.id JOIN taxonomy AS t1 ON t1.id = d1.detail_id JOIN details AS d2 ON d2.person_id = p.id JOIN taxonomy AS t2 ON t2.id = d2.detail_id JOIN details AS d3 ON d3.person_id = p.id JOIN taxonomy AS t3 ON t3.id = d3.detail_id WHERE t1.taxonomy = 'age' AND t2.taxonomy = 'gender' AND t3.taxonomy = 'height';
複数の JOIN を使用することで、次のデータと列をマージできます。さまざまなテーブルを包括的な新しいテーブルに変換します。
以上が複数の MySQL テーブルのデータを新しいテーブルにマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。