2016-09-30 46 views
1

我有一个简单的Select语句,它从2个MySQL表中返回数据,这很好。我现在需要从第三个相关表中返回一些数据,但不知道如何执行此操作。从其他加入获取相关值的SQL查询

这里是我当前的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表中的一些记录:

enter image description here

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

enter image description here

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

+0

为什么你需要再次加入..任何想法? –

+0

加入您的查询和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'' – Serg

回答

0

这个查询最后工作 - 感谢您的帮助。

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 
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 

但在我看来这很丑。