2017-11-16 8 views
0

投稿を選択して投稿に添付された共有イメージをすべて一覧表示すると同時に、ユーザーテーブルと投稿テーブルに参加するoracleクエリーがあります。私の問題は、MySQLでこのクエリを実行することです。私は非常に多くの修正を試みましたが、それは私にエラーを与え続けました。 LISTAGGのOracleをmysqlに変換してlistaggを選択し、左へ結合する

SELECT 
     post_image_id, 
     LISTAGG(photo_url, ", ") WITHIN GROUP (ORDER BY photo_url) imgs 
     FROM social_post_photos 
     GROUP BY post_image_id; 

     WITH i AS (
      SELECT post_image_id, 
      LISTAGG(photo_url, ", ") WITHIN GROUP (ORDER BY photo_url) imgs 
      FROM social_post_photos 
      GROUP BY post_image_id 
     ) 

     SELECT sp.post_body_message, i.imgs AS images 
     FROM social_posts sp 
     LEFT JOIN vendor_account va 
      ON sp.vendor_owner_id = va.eu_vendor_id 
     LEFT JOIN i 
      ON sp.social_page_id = i.post_image_id 

      WHERE sp.social_page_id = 'page1' 
      AND sp.vendor_owner_id = 'v100' 
TABLE WITH

FULL DEMO http://sqlfiddle.com/#!9/9c39ef/2

答えて

0

mysqlの当量はGROUP_CONCATある -

SELECT 
     post_image_id, 
     group_concat(photo_url ORDER BY photo_url) imgs 
     FROM social_post_photos 
     GROUP BY post_image_id; 

あり、バージョン8までのMySQLに(CTE)とnoですが、私はあなたがこれを置き換えることができると思いますサブクエリを使ってクエリを作成します。

+0

'post_body_message'をエコーし​​ようとするとエラーになります。注意:定義されていないプロパティ:stdClass :: $ post_body_message in 'メッセージボディは 'social_post'テーブルに含まれています – Peter

関連する問題