SQL - Extraer productos de una categoría específica desde una base de datos remota de WordPress WooCommerce
Me conecté a la base de datos y extraje con éxito los datos de productos. Ahora quiero mostrar productos de una categoría específica. La tienda usa WooCommerce. La página de destino está en una ubicación diferente, por lo que no puedo importar funciones de WordPress.
Esto es lo que tengo hasta ahora:
SELECT ID, `post_date`, `post_title`, `post_content`, `guid` FROM `wp_posts` as post
INNER JOIN wp_term_relationships rs ON rs.object_id = post.ID
INNER JOIN wp_terms t ON t.term_id = rs.term_taxonomy_id
WHERE `post_type` = "product"
AND `post_status` = "publish"
AND rs.term_taxonomy_id = 117
ORDER BY post_date DESC LIMIT 5
No ocurre nada. Si elimino AND rs.term_taxonomy_id = 117
funciona como antes. Aparecen los 5 productos más antiguos, pero no los productos de la categoría específica. ¿Qué me estoy perdiendo aquí?

Verifiqué tu consulta y está funcionando correctamente sin errores ni resultados vacíos. Pero además, si eliminas el INNER JOIN
de la tabla wp_terms
, también funciona porque no estás obteniendo nada de esa tabla y tampoco se utiliza en la cláusula WHERE
.
SELECT ID, `post_date`, `post_title`, `post_content`, `guid` FROM `wp_posts` as post
INNER JOIN wp_term_relationships rs ON rs.object_id = post.ID
WHERE `post_type` = "post" //tipo de post es 'post' para mi ejemplo
AND `post_status` = "publish"
AND rs.term_taxonomy_id = 1 //term_taxanomy_id es 1 para mi ejemplo
ORDER BY post_date DESC LIMIT 5

Para las publicaciones funciona bien. Pero para los productos no. Los productos tienen la taxonomía product_cat. Cuando ejecuto esto obtengo "MySQL devolvió un conjunto de resultados vacío (es decir, cero filas)". Pero tengo productos en esa categoría.

SELECT
`ID`,
`post_title`,
`guid`
FROM
posts
WHERE
post_type='product' and
post_status='publish' and
ID IN(
SELECT
object_id
FROM
term_relationships
WHERE
term_taxonomy_id IN(TU_ID_DE_CATEGORIA_O_IDS_MULTIPLES_SEPARADOS_POR_COMA) and
term_taxonomy_id IN(
SELECT
term_taxonomy_id
FROM
term_taxonomy
where
taxonomy='product_cat' )
)
