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

単一のmysqlクエリで複数のリレーションテーブルから値を複数連結する方法

    rel_destinationsで別の結合を使用する必要があります プラハを目的地としてオファーを取得します。これを元のクエリに参加させます。

    SELECT offers.*, 
      GROUP_CONCAT(DISTINCT DEPC.name SEPARATOR ', ') AS depCities,
      GROUP_CONCAT(DISTINCT DESTC.name SEPARATOR ', ') AS destCities
    FROM offers
    INNER JOIN `rel_departments` ON (`rel_departments`.`offer_id` = `offers`.`id`)
    INNER JOIN `departments` as DEPC ON (DEPC.`id` = `rel_departments`.`rel_id`)
    INNER JOIN `rel_destinations` ON (`rel_destinations`.`offer_id` = `offers`.`id`)
    INNER JOIN `destinations` as DESTC ON (DESTC.`id` = `rel_destinations`.`rel_id`)
    INNER JOIN rel_destinations AS d1 ON d1.offer_id = offers.id
    WHERE d1.rel_id = 1
    GROUP BY offers.id
    

    デモ




    1. Oracleデータ型

    2. オラクルのempテーブルで上位3つの最高給与を見つける方法は?

    3. php print_rに表示されているが、mysqlには保存されていないバイナリファイルの内容

    4. エラー:ローカルデータの読み込みが無効になっています-これはクライアント側とサーバー側の両方で有効にする必要があります