ホームページ >データベース >mysql チュートリアル >3 つの MySQL テーブルのデータを新しいテーブルに結合するにはどうすればよいですか?

3 つの MySQL テーブルのデータを新しいテーブルに結合するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-23 02:03:17934ブラウズ

How to Combine Data from Three MySQL Tables into a New Table?

mySQL: 3 つのテーブルのデータと列から新しいテーブルを作成する

質問:

フィールド last_name、フィールドを含む 3 つの既存のテーブルから選択したデータを結合する新しいテーブルを作成するにはどうすればよいですか?人物、詳細、および分類テーブルから名、電子メール、年齢を取得しますか?

回答:

これを実現するには、3 方向の JOIN を利用できます。

で新しいテーブルを作成する結合:

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';

このクエリは、last_name、first_name、email、および age 列を含む new_table という名前の新しいテーブルを作成します。詳細テーブルでは、コンテンツ フィールドは年齢情報の保存に使用されます。

既存のテーブルへのデータの挿入:

すでに 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';

Join for Multiple属性:

他のテーブルから複数の属性 (年齢、性別、身長など) を取得するには、追加の結合を実行する必要があります:

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 AND d1.taxonomy_id = (SELECT id FROM taxonomy WHERE taxonomy = 'age')
JOIN details AS d2 ON d2.person_id = p.id AND d2.taxonomy_id = (SELECT id FROM taxonomy WHERE taxonomy = 'gender')
JOIN details AS d3 ON d3.person_id = p.id AND d3.taxonomy_id = (SELECT id FROM taxonomy WHERE taxonomy = 'height');

以上が3 つの MySQL テーブルのデータを新しいテーブルに結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。