テーブル(Wordpressが使用するもの)でクエリを実行しようとしています.1つのテーブルからID列とpost_type列を選択し、別のテーブルに左結合を2回実行します(別々のデータを取得します)。
これは私がこれまでに持っているものですが、マスタードをカットしていません:
SELECT derby_posts.id AS pID,
derby_posts.post_type AS tier
FROM derby_posts
LEFT JOIN (SELECT derby_postmeta.post_id AS dbID1,
derby_postmeta.meta_key AS dbMeta1)
ON pid = dbid1
AND dbmeta1 = 'twitter'
LEFT JOIN (SELECT derby_postmeta.post_id AS dbID2,
derby_postmeta.meta_key AS dbMeta2)
ON pid = dbid2
AND dbmeta2 = 'website'
WHERE tier IN ('local', 'regional', 'national')
私は非常に単純なものが欠けていると確信しています...
編集:これが私のために働いた解決策です。テーブル エイリアスが役に立ち、すべての SELECT ステートメントをまとめて整理しました。また、結合でアイテムを使用していても、SELECT からアイテムを削除できることに気付きました。これにより、結果が大幅にクリーンアップされます。
SELECT
db.ID as id,
db.post_type as tier,
dpm1.meta_value as twitter,
dpm2.meta_value as website
FROM derby_posts db
LEFT JOIN derby_postmeta dpm1 ON (db.ID = dpm1.post_id AND dpm1.meta_key = 'twitter' )
LEFT JOIN derby_postmeta dpm2 ON (db.ID = dpm2.post_id AND dpm2.meta_key = 'website' )
WHERE db.post_type IN ('local','regional','national')