mrtkprc:
私はWooCommerce関連のアプリケーションを開発しました。したがって、私はWooCommerceのデータベーステーブルを使用する必要があります。
私はポイントで立ち往生しています。私はforeign_idた複数の行を持つ別のテーブルにテーブルを連結したいです。
例えば:
WooCommerceで2つのテーブルがあります。これらは、wp_posts
とwp_postmeta
。
wp_posts
次の表が含まれています。
| ID | post_title | post_name
| 1682 | foo | foo
| 1681 | bar | bar
wp_postmeta
次の表が含まれています。
| post_id | meta_key | meta_value
| 1682 | _regular_price | 100
| 1682 | _sale_price | 99
| 1681 | _regular_price | 300
| 1681 | _sale_price | 299
私は、次の表に結果のSQLクエリを記述したいと思います。
| ID | post_title | post_name | _regular_price | _sale_price |
| 1682 | foo | foo | 100 | 99
| 1681 | bar | bar | 300 | 299
どうもありがとうございます。
ではごきげんよう、
GMB:
条件付きの集約を使用します。
select
p.id,
p.post_title,
p.post_name,
max(case when m.meta_key = '_regular_price' then m.meta_value end) regular_price,
max(case when m.meta_key = '_sale_price' then m.meta_value end) sale_price
from wp_posts p
inner join wp_postmeta m on m.post_id = p.id
group by p.id, p.post_title, p.post_name
メタテーブルはポストごとの行数が多い場合は、次のようにクエリを最適化することができwhere
句:
where m.meta_key in ('_regular_price', '_sale_price')