2016-03-19 25 views
-1

私は必要なものをどのように言いたいのかわからない...これは、タイプと状態を選択できる検索の一部です。私はmeta_valueである同じmysql列から型と状態を照合するためにこのクエリを実行できる必要があります。問題は、選択された状態のすべての型を結果に戻していることです。2つの値を持つ同じ列を検索するMySQL

例:私は、サウスカロライナ州にあるドラッグストリップとサウスカロライナ州にある他のタイプ(楕円形、道路コースなど)ではなく、他の州。

以下は私が今働いていないものですが、私が必要とする結果を得るためにどこに行くべきかはわかりません。

SELECT dmp_postmeta.meta_value, dmp_posts.post_title, dmp_posts.post_type, 
     dmp_posts.post_status, dmp_posts.id 
FROM dmp_postmeta, dmp_posts 
WHERE dmp_postmeta.meta_value IN ('South Carolina','Drag Strip') 
    AND dmp_posts.post_type='my_custom_tracks' 
    AND dmp_posts.post_status='publish' 
GROUP BY dmp_postmeta.post_id ORDER BY dmp_posts.post_title 


meta_key   meta_value 
Track_Type  Drag Strip 
Track_Type  Oval 
Track_Location South Carolina 
Track_Location Texas 

******これは私が最終的に動作するようになったものです******

"SELECT p.ID as id, p.post_title, p.post_type, p.post_status as post_status, MAX(CASE WHEN pm1.meta_value='".$track_type."' then pm1.meta_value ELSE NULL END) as track_type, MAX(CASE WHEN pm1.meta_value='".$track_state."' then pm1.meta_value ELSE NULL END) as track_state FROM dmp_posts p LEFT JOIN dmp_postmeta pm1 ON (pm1.post_id = p.ID) WHERE p.post_type='my_custom_tracks' AND p.post_status='publish' GROUP BY p.ID, p.post_title ORDER BY p.post_title" 
+0

「同じ列の入力と状態」とはどういう意味ですか? 1つの列が2つの情報をどのように保持していますか?おそらく、あなたは 'meta_value'カラムにデータがどのように見えるかの例を提供することができます。 –

+0

私はデータがどのように見えるのかという質問を更新しました。それはWordPressのpostmetaテーブルです。 – BeKustom

+0

dmp_postsとdmp_postsataを結合する特別な条件が必要です。 –

答えて

0

を解決しました。助けてくれてありがとう。

"SELECT p.ID as id, p.post_title, p.post_type, p.post_status as post_status, MAX(CASE WHEN pm1.meta_value='".$track_type."' then pm1.meta_value ELSE NULL END) as track_type, MAX(CASE WHEN pm1.meta_value='".$track_state."' then pm1.meta_value ELSE NULL END) as track_state FROM dmp_posts p LEFT JOIN dmp_postmeta pm1 ON (pm1.post_id = p.ID) WHERE p.post_type='my_custom_tracks' AND p.post_status='publish' GROUP BY p.ID, p.post_title ORDER BY p.post_title" 
関連する問題