SQLを急きょ勉強しているのですが、本当にまだまだ不出来で、悩んでおります。
テーブルを3つ組み合わせて、特定のデータを取得しようとして、期待通りの結果が出ません。
以下の3つのテーブルがあったとします。
comments_table
comment_ID | comment_content |
---|---|
1 | hoge |
2 | fuga |
comment_meta_table
meta_id | comment_id | meta_key | meta_value |
---|---|---|---|
100 | 1 | type | type_A |
101 | 1 | userID | 776 |
102 | 2 | type | type_A |
103 | 2 | userID | 777 |
users_table
user_ID | user_name |
---|---|
776 | 一郎 |
777 | 二郎 |
「comment_meta_table」の「type」が「typeA」かつ、
「users_table」の「user_name」が「二郎」の、
「comments_table」の「comment_ID」を取得しよう思い、以下のように書きました。
SELECT DISTINCT comments_table.comment_ID FROM $comments_table INNER JOIN $comment_meta_table ON $comments_table.comment_ID = $comment_meta_table.comment_id INNER JOIN $users_table ON $comment_meta_table.meta_value = $users_table.ID WHERE ( comment_meta_table.meta_key = 'type' AND comment_meta_table.meta_value = 'type_A' ) AND users_table.user_nicename = '二郎')
上記の文の、WHERE以降の条件を、ANDでつなげずに、
WHERE comment_meta_table.meta_key = 'type' AND comment_meta_table.meta_value = 'type_A'
とするか、
WHERE users_table.user_nicename = '二郎'
とすると、片方の条件だけでの検索は実現するのですが、2つの条件をANDでつなげると、途端に何も選択されない状態になってしまいます。
上記のコードを見て、おかしな点がお分かりになる方がいらっしゃいましたら、どうかご教授頂けましたら幸いです。
どうか、どうか宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/05 09:36
2019/03/05 09:54 編集