sql >> データベース >  >> RDS >> Mysql

mySQL-3つのテーブルのデータと列を使用して新しいテーブルを作成する

    3方向の参加を行う必要があります:

    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'
    

    デモ

    または、すでにテーブルを作成している場合は、次のことができます。

    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'
    

    複数の属性を取得するには、属性ごとに個別に詳細テーブルと分類テーブルを結合する必要があります。

    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'
    



    1. Postgresでのクイックランダム行選択

    2. SQL Serverクエリの最大サイズ? IN句?より良いアプローチはありますか

    3. Oracle Bug Databaseはどこにありますか?

    4. ERデータモデルの概要