Concatenar una fila de columnas de otra tabla con múltiples filas

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_postsy wp_postmeta.

El wp_postscontiene la siguiente tabla.

| ID   | post_title | post_name
| 1682 | foo        | foo
| 1681 | bar        | bar

El wp_postmetacontiene 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 wherecláusula:

where m.meta_key in ('_regular_price', '_sale_price')

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=298914&siteId=1
Recomendado
Clasificación