これはワードプレスインストールですが、一般的なSQLの質問の方が問題だと思います。まず、私のSQLスキルはあまり良くありません(私はdbを説明するための正しい形式に従っているかどうかわかりません)。別のテーブルに特定の値がないすべての行を選択してください
私が持っている二つのテーブル:
wp_posts :
ID (pk) | post_name | ...
----------------------------
45 | "Hello"
91 | "Funny"
16 | "Wheat"
wp_postmeta :
post_id (fk) | meta_key | meta_value | ...
------------------------------------------------
45 | "_edit_lock" | 5789789834
45 | "fizzbizz" | "foobar"
91 | "_something" | "teve"
meta_key =「fizzbizz」
私はもともとこのクエリを持っていたwp_postmeta内に対応する行が存在しないところ私はwp_postsのすべての行を選択したいと思います誰かが、上記の場合にID = '16'を取得しないと指摘しました。どのようにしてクエリを正しく書くことができますか?
$pageposts = $wpdb->get_results("
SELECT * FROM wp_posts p
JOIN wp_postmeta m
ON p.ID = m.post_id
WHERE m.meta_key <> 'fizzbizz'
ORDER BY p.post_date DESC;
");
@JMCクリエイティブ - 条件を満たす行があるので、それでも機能します。あなたが「fizzbizz」を持っている行を1つ持っていても、あなたはそうでない行があり、その行はあなたのレコードセットに含まれます。あなたはそれが欲しいですか? – JNK
@ JMCクリエイティブ - オリジナルのクエリを編集しても機能しますが、編集したバージョンを使用してメタテーブルの行を持たないレコードを使用する必要があります – JNK
@JNK、ここではあまり尋ねたくありませんが、私はLEFT JOINを使うべきですか?私は、 "LEFTテーブルのデータのみを取得する"ことを意味すると思った。 – JakeParis