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

MySqlは、行番号が異なる複数のテーブルを結合します

    データが与えられると、このクエリは必要なものを返すはずです:

    SELECT t1.*,
           GROUP_CONCAT(t2.info SEPARATOR '|') AS info,
           GROUP_CONCAT(t2.data SEPARATOR '|') AS data
    FROM table1 t1 LEFT JOIN
         join j
         ON j.id_a = t1.id_a LEFT JOIN
         table2 t2
         ON t2.id_b = j.id_b
    WHERE t1.id_a = ?
    GROUP BY t1.id_a;
    

    必要に応じて、DISTINCTを使用して重複を削除できます :

    SELECT t1.*,
           GROUP_CONCAT(DISTINCT t2.info SEPARATOR '|') AS info,
           GROUP_CONCAT(DISTINCT t2.data SEPARATOR '|') AS data
    FROM table1 t1 LEFT JOIN
         join j
         ON j.id_a = t1.id_a LEFT JOIN
         table2 t2
         ON t2.id_b = j.id_b
    WHERE t1.id_a = ?
    GROUP BY t1.id_a;
    

    ただし、通常は、重複が生成されないようにクエリを修正することをお勧めします。




    1. LIKEコマンドMysql

    2. MySQL乗算クエリ

    3. 高度なSQLクエリデザインヘルプ(2つのテーブル間で複製、複数のフィールド、1つのフィールドに基づいて除外される可能性があります)

    4. PHPをMySqlからExcelスプレッドシートに変換する列の自動サイズ変更