当前位置: 首页 > 知识库问答 >
问题:

SQL查询以从附加联接获取相关值

沈飞跃
2023-03-14

我有一个简单的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表中的一些记录:

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

我知道thumbnail_id是作为thumbnailID在当前查询中返回的,只是不知道如何将其再次连接到wp_postmeta表。

共有2个答案

邵毅
2023-03-14

这个查询最终成功了--谢谢您的帮助。

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
陆星文
2023-03-14
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

但在我看来很难看。

 类似资料:
  • 问题内容: 我下面有显示反社会犯罪总数的代码,但我也希望从另一个称为be output的表中获取代码。我试图找到一种解决方法,但无法使其正常工作。有任何想法吗? 问题答案: 您要用来查找位置名称。该查询可能看起来像这样: 您需要为和输入正确的列名称。

  • 我有一个关于Hibernate ManyToOne协会的问题。 我有一个产品实体映射如下: 所以你怎么能看到我们与ProductClass表的关系。和FK我们存储在产品表中。当我创建查询,选择产品的特定类别和价格我有下一个this_: 我接下来的问题是:如何避免Product和ProductCategory这两个表的内部联接? 我的标准DAO代码:<代码>标准。createAlias(“类别”、“

  • 我有三个表,分别名为device_table、playlist_table和device_playlist_assoc device_playlist_assoc表用于将设备与播放列表相关联。 device_table playlist_table Device_PlayList_Assoc 所以,我想要的是那些没有播放列表的设备。我只从前端获得playlist_id作为参数。所以我想要一个sql

  • 问题内容: 我有两个表:表A和表B 表A和表B都有列。 表A和表B都有列。 表A的一列也称为。 检查条件: 如果表A“键” =恒定,则从表A检索RowId。 从中获取这些行ID,并检查这些行的字段是否>具有相同rowId的表B的> ModifiedAT字段。 Table没有重复的RowId,而Table具有。 我自己尝试的方法: 注意:另外,令我感到惊讶的是,如果我将硬编码值替换为“ 1”,它会起

  • 问题内容: 遇到了一些严重的问题,无法解决如何针对我的情况建立适当的查询。.可以肯定的是,这取决于正确地连接表,但是经过大量的谷歌搜索之后,我似乎无法弄清楚… 我有下表。 和… 和… 希望我能够正确解释这一点。.我在Main中有一堆记录,我需要从中获取信息。.我需要能够对WhenDate和TypeID进行过滤。我还需要从链接到StatusID的状态表中获取StatusText。 问题: 次要表链接

  • 问题内容: 我需要从Hibernate查询中获取字符串,并稍后进行处理(因此无法使用来解决)。 我已经看过如何从HibernateCriteriaAPI(并非用于记录日志)中获取SQL,但是有了这种解决方法,我得到了SQL查询字符串,但是没有显示它显示’?’的参数值,有没有办法获得带有参数值的完整SQL字符串? 我的意思是,有了这种解决方案,我可以得到,但我需要得到… 有想法吗? 问题答案: 有一