【问题标题】:SQL Query to get related value from additional joinSQL 查询从附加连接中获取相关值
【发布时间】:2023-03-20 00:35:01
【问题描述】:

我有一个简单的 Select 语句,它从 2 个运行良好的 MySQL 表中返回数据。我现在需要从第三个相关表中返回一些数据,但不知道该怎么做。

这是我当前的 SQL 查询

 select
    p.ID,
    p.post_title,
    p.post_name,
    max(CASE WHEN pm.meta_key = '_thumbnail_id'  THEN pm.meta_value END ) as thumbnailID,
    CAST(max( CASE WHEN pm.meta_key = '_price'  THEN pm.meta_value END ) AS UNSIGNED) as Price,
    max( CASE WHEN pm.meta_key = '_stock_status'  THEN pm.meta_value END ) as stockStatus,
    max( CASE WHEN pm.meta_key = '_sku'  THEN pm.meta_value END ) as SKU,
    CAST(max( CASE WHEN pm.meta_key = '_sale_price'  THEN pm.meta_value END ) AS UNSIGNED) as salePrice,
    CAST(max( CASE WHEN pm.meta_key = '_regular_price'  THEN pm.meta_value END ) AS UNSIGNED) as regularPrice,
    CAST(max( CASE WHEN pm.meta_key = 'total_sales'  THEN pm.meta_value END ) AS UNSIGNED) as totalSales

 from wp_posts p 
 join wp_postmeta pm
 on p.ID = pm.post_id

 where post_type = 'product'
 group by p.ID

我现在需要从 wp_postmeta 表中获取值,其中 wp_postmeta 表中 _thumbnail_id 的值与 wp_postmeta 表中 post_id 值的值相匹配,并且 meta_key 值 = _wp_attached_file。

以下是 wp_postmeta 表中的一些记录:

第一条记录的 _thumbnail_id = 100。我现在需要从 wp_postmeta 表(同一张表)中获取记录的值,其中 post_id = 100 和 meta_key = _wp_attached_file,如下所示:

我知道 thumbnail_id,因为它在我当前的查询中作为 thumbnailID 返回 - 只是不确定如何再次将它加入 wp_postmeta 表。

【问题讨论】:

  • 为什么你需要再次加入..有什么想法吗?
  • 加入您的查询和 wp_postmeta。 select t.*, att.meta_value from (_your query_) as t left join wp_postmeta as att on att.post_id = t.thumbnail_id and att.meta_key ='_wp_attached_file'

标签: mysql sql select


【解决方案1】:
LEFT JOIN wp_postmeta AS meta2 
WHERE meta2.post_id = max(CASE WHEN pm.meta_key = '_thumbnail_id'  THEN pm.meta_value END )
AND meta2.meta_key = _wp_attached_file

但在我看来它很丑。

【讨论】:

    【解决方案2】:

    此查询最终成功 - 感谢您的帮助。

    select
        p.ID,
        p.post_title,
        p.post_name,
        max(CASE WHEN pm.meta_key = '_thumbnail_id'  THEN pm.meta_value END ) as thumbnailID,
        CAST(max( CASE WHEN pm.meta_key = '_price'  THEN pm.meta_value END ) AS UNSIGNED) as Price,
        max( CASE WHEN pm.meta_key = '_stock_status'  THEN pm.meta_value END ) as stockStatus,
        max( CASE WHEN pm.meta_key = '_sku'  THEN pm.meta_value END ) as SKU,
        CAST(max( CASE WHEN pm.meta_key = '_sale_price'  THEN pm.meta_value END ) AS UNSIGNED) as salePrice,
        CAST(max( CASE WHEN pm.meta_key = '_regular_price'  THEN pm.meta_value END ) AS UNSIGNED) as regularPrice,
        CAST(max( CASE WHEN pm.meta_key = 'total_sales'  THEN pm.meta_value END ) AS UNSIGNED) as totalSales,
    
        max(CASE WHEN  meta2.meta_key = '_wp_attached_file' THEN meta2.meta_value END ) as thumbnailURL
    
    
    
    from wp_posts p 
    join wp_postmeta pm
    on p.ID = pm.post_id
    
    LEFT JOIN wp_postmeta meta2 
      ON meta2.post_id = pm.meta_value AND pm.meta_key = '_thumbnail_id'
    
    
    
    where post_type = 'product'
    
    
    group by p.ID
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 2014-07-18
      相关资源
      最近更新 更多