前提・実現したいこと
2つのテーブルをまとめて1つのテーブルとして表示しCSVでダウンロードしたいです
2つのテーブルがあります
テーブル1 wp_posts
post_id | post_name | post_type |
---|---|---|
1 | post-name-1 | post_type_1 |
2 | post-name-2 | post_type_2 |
3 | post-name-3 | post_type_1 |
4 | post-name-4 | post_type_3 |
テーブル2 wp_postmeta
post_id | meta_key | meta_value |
---|---|---|
1 | meta_key_img | meta_value_1_img |
1 | meta_key_text | meta_value_1_text |
2 | meta_key_img | meta_value_2_img |
2 | meta_key_text | meta_value_2_text |
3 | meta_key_img | meta_value_2_img |
3 | meta_key_text | meta_value_3_text |
テーブル1のpost_type
がpost_type_1
のもの、かつ
テーブル2のpost_id
がテーブル1のもののmeta_key
をテーブルの列にしてそのmeta_value
を表にして出力させたいです
最終的に出力したいのは以下のようなテーブルです
post_id | post_name | post_type | meta_key_img | meta_key_text | meta_value |
---|---|---|---|---|---|
1 | post-name-1 | post_type_1 | meta_value_1_img | meta_value_1_text | post_type_1 |
3 | post-name-3 | post_type_1 | meta_value_3_img | meta_value_3_text | post_type_1 |
試したこと
wp_posts
テーブルからpost_type_1
のものを取得するSQLはわかりました
SQL
1SELECT * FROM `wp_posts` WHERE `post_type` = 'post_type_1'
しかし、2つのテーブルを関連付けて出力する、テーブルのデータをキーにする方法がわからずお心優しい方教えていただけませんか。
補足情報(FW/ツールのバージョンなど)
FW:WordPress
開発環境:Local,Adminer
###追記
ご回答いただいたINNER JOIN
を使用した結果
SQL
1SELECT * FROM wp_postmeta INNER JOIN wp_posts ON wp_postmeta.post_id=wp_posts.ID
post_id | post_name | post_type | meta_key | meta_value |
---|---|---|---|---|
1 | post-name-1 | post_type_1 | meta_key_img | meta_value_1_img |
1 | post-name-1 | post_type_1 | meta_key_text | meta_value_3_text |
このようには表示出来るのですが本来は以下のような形で表示させたいです
post_id | post_name | post_type | meta_key_img | meta_key_text |
---|---|---|---|---|
1 | post-name-1 | post_type_1 | meta_value_1_img | meta_value_3_text |
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。