2016-09-30 9 views
1

2つのMySQLテーブルのデータを返す単純なSelect文があります。私は今、3番目の関連テーブルからいくつかのデータを返す必要がありますが、これを行う方法がわかりません。追加の結合から関連する値を取得するSQLクエリ

ここに私の現在のSQLクエリは、私が今wp_postmetaテーブルの_thumbnail_idの値がwp_postmetaテーブルにpost_idの値の値と一致するwp_postmetaテーブルから値を取得する必要があり

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 

だとmeta_key値= _wp_attached_file。

ここ

はwp_postmetaテーブルから一部のレコードです:

enter image description here

最初のレコード_thumbnail_id =私は今wp_postmetaテーブルからレコードの値を取得する必要があり100(同じテーブル)を有する場合ここに示されているようにpost_id = 100とmeta_key = _wp_attached_file:

enter image description hereそれは私の現在のクエリでthumbnailIDとして返されるように私はthumbnail_idを知っ

- これを再びwp_postmeta表に結合する方法がわかりません。

+0

なぜあなたは再び参加する必要がありますか? –

+0

クエリとwp_postmetaに参加してください。 '選択したt。*、att.meta_value from(_your query_)は左にwp_postmetaをattとして追加att.post_id = t.thumbnail_idと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 

しかし、私の意見では醜いです。

関連する問題