2016-11-25 12 views
0

私はこの質問を投稿していますが、どこかで回答があるかもしれませんが、検索用語に問題があります。以下の私の最初のクエリは、必要な結果の正しい数を取得します。MySQL - テーブルを結合し、特定の値が存在するかどうかを追加してください。

SELECT * FROM wp_posts 
WHERE post_type = 'video' 
AND post_status = 'publish' 
ORDER BY 'post_date' 

私の問題は、私はそれらの記事のいくつかのすべてではない上に存在する別のテーブルにカスタムフィールドの値を持っていることです。フィールド値が存在する場合は、情報を別の列に表示します。通常のJOINを実行すると、値が存在するかどうかをどのようにフィルタリングするかわからないため、結果が多すぎる結果に終わります。

基本的に私はwp_postmeta

FROM = 'ソース' とIF meta_key wp_postmetaと呼ばれるテーブル2から続いて

SELECT * FROM wp_posts 
WHERE post_type = 'video' 
AND post_status = 'publish' 
ORDER BY 'post_date' 

のような何かをしたい** THENからさらに2つのカラムを追加2番目のテーブル**

私の最大の問題は、私の2番目のテーブルのmeta_keyカラムが同じIDに結びついている多くの値を持っていることです。だから、私が普通のシンプルなJOINをやると、あまりにも多くの行が戻ってきます。

これ以上説明できない場合は申し訳ありませんが、私が達成しようとしていることを誰かが知っていれば、どんな助力にも感謝します。

+0

私は、私が望むことを達成するために左のジョイントを追加する必要があると考えました。ありがとう、ご迷惑をおかけしました。 – kaykills

答えて

0

私は、私が望むことを達成するためにLEFT JOINを追加する必要があると考えました。ありがとう、ごめんなさい。

SELECT * 
FROM wp_posts A 
LEFT JOIN wp_postmeta B 
ON A.ID = B.post_id 
AND B.meta_key = 'sources' 
WHERE A.post_type = 'video' 
AND A.post_status = 'publish' 
関連する問題