私は2つのタクソノミ:city
とstreet
を持っています。LEFT JOINは機能しません
私のプラグインの1つにpostmeta
を取得する必要があります。
唯一の分類のためのコードの作業:
SELECT *
FROM $wpdb->postmeta
LEFT JOIN $wpdb->posts ON($wpdb->posts.ID = $wpdb->postmeta.post_id)
LEFT JOIN $wpdb->term_relationships ON ($wpdb->postmeta.post_id = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
WHERE meta_key LIKE 'rwp_rating%'
AND ($wpdb->term_taxonomy.taxonomy = 'city'
AND $wpdb->term_taxonomy.term_id = '2')
を私は
AND ($wpdb->term_taxonomy.taxonomy = 'street' AND $wpdb->term_taxonomy.term_id = '5')
を追加した場合、それは空の結果を返します。
SELECT *
FROM $wpdb->postmeta
LEFT JOIN $wpdb->posts ON ($wpdb->posts.ID = $wpdb->postmeta.post_id)
LEFT JOIN $wpdb->term_relationships ON ($wpdb->postmeta.post_id = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy AS t1 ON ($wpdb->term_relationships.term_taxonomy_id = t1.term_taxonomy_id)
LEFT JOIN $wpdb->term_taxonomy AS t2 ON ($wpdb->term_relationships.term_taxonomy_id = t2.term_taxonomy_id)
WHERE meta_key LIKE 'rwp_rating%'
AND (t1.taxonomy = 'city'
AND t1.term_id = '2')
AND (t2.taxonomy = 'street'
AND t2.term_id = '3331');
そして、それはあまりにも働いていません:
はまた、私はそれを実行しようとしました。
注意してください:私は次のように、両方に一致する必要があります。city = 2 AND street = 2
ない:単一分類レコードはそれで通りや街の両方を持つことができないのでcity = 2 OR street = 2
は行動に参加します。 (どこにいるときは、定期的な内部結合の結果が得られます。) – jarlh