0
私は2つのテーブルを持っており、言語がengで寄付金額が25ユーロより高いすべての(ポスト)レコードを取得したい。MySQLクエリ。参加するデータを複数選択する
これはクエリが構築されたものです。
SELECT wp_posts.* , wp_postmeta.*
FROM wp_posts
JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id
WHERE (wp_postmeta.meta_key = 'lang_code' AND wp_postmeta.meta_value = 'en')
AND (wp_postmeta.meta_key = 'donated' AND CAST(wp_postmeta.meta_value AS SIGNED) > '25')
AND wp_posts.post_type = 'donation'
AND wp_posts.post_status = 'publish'
ORDER BY wp_posts.post_date DESC
LIMIT 1 OFFSET 0;
テーブル#1(wp_posts)
---------------------------------------------------
ID | name | post_type | post_status
---------------------------------------------------
01 | test entry 1 | donation | publish
02 | test entry 2 | donation | publish
03 | test entry 3 | donation | awaiting
テーブル#2(wp_postmeta)。
---------------------------------------------------
meta_id | post_id | meta_key | meta_value
---------------------------------------------------
23 | 01 | lang_code | en
84 | 01 | donated | 3100
25 | 02 | lang_code | en
63 | 02 | donated | 15
このデモデータで期待される結果。
---------------------------------------------------
ID | name | post_type | post_status
---------------------------------------------------
01 | test entry 1 | donation | publish
サブクエリを使用せずに必要な結果を得るにはどうすればよいですか?
私は寄付金額の任意の列が表示されません。 –
@TimBiegeleisenこれは、meta_key 'donated 'とmeta_valueカラムの一致するデータの組み合わせです。 @OP:なぜサブクエリを使いたくないのですか?あなたのSQLは動作しますか(それは可能性があります)。それがうまくいくなら、それはどこに問題がありますか? – daZza
@daZzaサブクエリはクエリを本当に遅くしませんか?私はこの質問がOKだとも思った。しかし、複数のメタ/キー=>メタ/値でフィルタリングすることはできません。 – Daan