Suporte » Outros assuntos » Como montar essa consulta SQL?

  • Olá pessoa, preciso de ajuda estou “quebrando a cabeça” para tentar entender como posso melhorar essa query, primeiro essas sãos as tabelas que quero captar os dados:

    Para dados do aluno
    +--------------------------------+
    |            wp_users            |
    +----+------------+--------------+
    | ID | user_email | display_name |
    +----+------------+--------------+
    |    |            |              |
    +----+------------+--------------+
    
    Para dados do curso
    +----------------------------------------------+
    |                wp_commentmeta                |
    +---------+------------+----------+------------+
    | meta_id | comment_id | meta_key | meta_value |
    +---------+------------+----------+------------+
    |         |            |          |            |
    +---------+------------+----------+------------+
    
    +-----------------------------------------------------------+
    |                        wp_comments                        |
    +------------+-----------------+------------------+---------+
    | comment_ID | comment_post_id | comment_approved | user_id |
    +------------+-----------------+------------------+---------+
    |            |                 |                  |         |
    +------------+-----------------+------------------+---------+
    
    Para dados da associação
    
    +----------------------------+
    | wp_pmpro_membership_levels |
    +-------------+--------------+
    | id          | name         |
    +-------------+--------------+
    |             |              |
    +-------------+--------------+
    
    +-------------------------------------------------------------+
    |                  wp_pmpro_memberships_users                 |
    +----+---------+---------------+--------+-----------+---------+
    | id | user_id | membership_id | status | startdate | enddate |
    +----+---------+---------------+--------+-----------+---------+
    |    |         |               |        |           |         |
    +----+---------+---------------+--------+-----------+---------+
    
    para dados da compra
    +--------------------------------------------------------------+
    |                  wp_woocommerce_order_items                  |
    +---------------+-----------------+-----------------+----------+
    | order_item_id | order_item_name | order_item_type | order_id |
    +---------------+-----------------+-----------------+----------+
    |               |                 |                 |          |
    +---------------+-----------------+-----------------+----------+
    
    +-------------------------------------------------+
    |          wp_woocommerce_order_itemmeta          |
    +---------+---------------+----------+------------+
    | meta_id | order_item_id | meta_key | meta_value |
    +---------+---------------+----------+------------+
    |         |               |          |            |
    +---------+---------------+----------+------------+
    
    e parece que tudo está ligado com a tabela de posts, pois tenho informações de cursos e compras. 
    +-------------------------------------------+
    |                  wp_posts                 |
    +----+------------+-------------+-----------+
    | ID | post_title | post_status | post_type |
    +----+------------+-------------+-----------+
    |    |            |             |           |
    +----+------------+-------------+-----------+
    
    +-------------------------------------------+
    |                wp_postmeta                |
    +---------+---------+----------+------------+
    | meta_id | post_id | meta_key | meta_value |
    +---------+---------+----------+------------+
    |         |         |          |            |
    +---------+---------+----------+------------+

    essa era a consulta que estava tentando:

    SELECT wu.ID, wc.user_id, wu.display_name, 
    wpo.ID as 'ID C e L',
    wpo.post_title as Curso, 
    wpo.post_modified_gmt,
    wpo.post_type as Tipo, 
    wc.comment_ID, wc.comment_post_ID, wc.comment_type,
    wcm.comment_id, wcm.meta_key, wcm.meta_value,
    woi.order_item_id, woi.order_item_name,
    woim.meta_key, woim.meta_value
    FROM wp_posts wpo
    LEFT JOIN wp_postmeta wpm ON wpo.ID = wpm.post_id
    LEFT JOIN wp_comments wc ON wpo.ID = wc.comment_post_ID
    and wc.comment_type = 'sensei_course_status'  
    LEFT JOIN wp_commentmeta wcm ON wc.comment_ID = wcm.comment_id
    LEFT JOIN wp_users wu ON wc.user_id = wu.ID 
    LEFT JOIN wp_usermeta wum ON wu.ID = wum.user_id
    LEFT JOIN wp_woocommerce_order_items woi ON wpo.ID = woi.order_id
    LEFT JOIN wp_woocommerce_order_itemmeta woim ON woi.order_item_id = woim.order_item_id
    WHERE  wpo.post_type = 'course' OR wpo.post_type = 'shop_order'  
    ORDER BY <code>wpo</code>.<code>ID</code> ASC

    Eu até consigo dados separados em outras consultas mas isso foi o mais perto que andei de mostrar tudo, gostaria de mostrar se o usuário comprou um produto, que cupom ele utilizou que curso ele se matriculou e qual a sua associação ativa. Como eu disse consigo todos os dados mas em consultas separadas mas parece que estou emperrada em algo a ver com wp_posts, pois vejo que preciso de três post_type (‘course’, ‘shop_order’ e ‘shop_coupon’ ) –

    • Este tópico foi modificado 1 ano, 7 meses atrás por tiicaa.
  • O tópico ‘Como montar essa consulta SQL?’ está fechado para novas respostas.