wordpressで_postsと_postmetaを結合して下記のようなデータを
縦横変換したいのですが、どのようなSQLにすれば良いのか全くわからず
質問させていただきました。
現状のSQL
SELECT pm.* FROM wp_posts AS p LEFT JOIN wp_postmeta AS pm ON (p.ID = pm.post_id) WHERE p.post_type = 'customer'
結果
meta_id , post_id , meta_key , meta_value
3686 427 user_id 001
3687 427 user_os iPhone
3688 427 user_device iPhone/iPad
3689 427 create_day 2021-10-01
3690 428 user_id 002
3691 428 user_os Windows10
3692 428 user_device PC
3693 428 create_day 2021-10-02
取得したいレイアウト
post_id ,user_id , user_os , create_day
427 ,001 , iPhone ,iPhone/iPad
428 ,002 , Windows10 ,PC
試したこと
サブクエリにしたいけると思ったのですが
#1242 - サブクエリが2行以上の結果を返します。
というエラーになってしまい、いきずまってしまいました。
SELECT (SELECT meta_value FROM wp_posts AS p LEFT JOIN wp_postmeta AS pm ON (p.ID = pm.post_id) WHERE meta_key = 'user_id') AS user_id FROM wp_posts AS p LEFT JOIN wp_postmeta AS pm ON (p.ID = pm.post_id) WHERE p.post_type = 'customer' GROUP BY pm.post_id
回答2件
あなたの回答
tips
プレビュー