2017-09-18 20 views
-1

1つのクエリで1回目と2回目の結合を使用すると、次のクエリが正常に機能しません。私がそれらに別々に参加すると、適切な結果が得られます(付録を参照)。複数回結合すると結果が空になる

第一+第二は1つのクエリで参加:

SELECT DISTINCT f.prd_name, f.prd_id from tbl_prd as f 

INNER JOIN tbl_prd_template_field_rule as f18_0 on f.prd_id=f18_0.prd_id AND f18_0.prd_template_field_id='18' AND f18_0.prd_template_field_rule_value='CF+CFast' 
INNER JOIN tbl_prd_template_field_rule as f18_1 on f.prd_id=f18_1.prd_id AND f18_1.prd_template_field_id='18' AND f18_1.prd_template_field_rule_value='CF' 

をそれはなぜですか?私は1 quantitieに、これら二つの量に参加することができます思った...

付録

第一が参加:

になり
INNER JOIN tbl_prd_template_field_rule as f18_0 on f.prd_id=f18_0.prd_id AND f18_0.prd_template_field_id='18' AND f18_0.prd_template_field_rule_value='CF+CFast' 

キヤノンEOS 5DS Rボディ50,6MP | 5325

キヤノンEOS 5Dsボディ50,6MP | 5326

キヤノンEOS 1DXマークIIボディ20,2MP。 | 5802

ニコンD5ボディ20,7MP |第2回6162

参加:になり

INNER JOIN tbl_prd_template_field_rule as f18_1 on f.prd_id=f18_1.prd_id AND f18_1.prd_template_field_id='18' AND f18_1.prd_template_field_rule_value='CF' 

キヤノンEOS 5DマークIVボディ30,4MP | 5965

一緒に両方:

空の結果

+0

外部結合を使用する必要があります – Jens

答えて

0

は外ではなく、参加してみます。内部結合は、すべての条件に一致する項目のみを返します。

+0

mysqlで外部結合を作成するにはどうすればよいですか?私は本当にそのようなmysqlコマンドがないことを知りました。 – jwetzel

+0

Web検索で外側の結合に関する情報をたくさん見つけることができます。非常に短いバージョン:外部結合は、 "and"としてより多く機能する内部結合とは対照的に、 "or"式のように結果を返します。使い方は、内部結合の例と同じです。 「内側」を「外側」に置き換えるだけで、必要な結果を得ることができます。 –

関連する問題