mrtkprc:
He desarrollado una aplicación relacionada WooCommerce. Por lo tanto, hay que utilizar tablas de la base de WooCommerce.
Soy una atascado en un punto. Me gustaría concatenar una tabla a otra con múltiples filas que ha foreign_id.
Por ejemplo:
Hay 2 tablas en WooCommerce. Estos son wp_posts
y wp_postmeta
.
El wp_posts
contiene la siguiente tabla.
| ID | post_title | post_name
| 1682 | foo | foo
| 1681 | bar | bar
El wp_postmeta
contiene la siguiente tabla.
| post_id | meta_key | meta_value
| 1682 | _regular_price | 100
| 1682 | _sale_price | 99
| 1681 | _regular_price | 300
| 1681 | _sale_price | 299
Me gustaría escribir consulta SQL que se traducen en la siguiente tabla.
| ID | post_title | post_name | _regular_price | _sale_price |
| 1682 | foo | foo | 100 | 99
| 1681 | bar | bar | 300 | 299
Muchas gracias.
Todo lo mejor,
GMB:
Utilice la agregación condicional:
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
Si la tabla meta tiene un gran número de filas por correo, se puede optimizar la consulta con la siguiente where
cláusula:
where m.meta_key in ('_regular_price', '_sale_price')