Mysql 多次连接结果为空

Mysql 多次连接结果为空,mysql,Mysql,如果在一个查询中使用第一个联接和第二个联接,则以下查询无法正常工作。如果我分别加入它们,我会得到正确的结果(见附录) 1+2次加入一个查询: 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

如果在一个查询中使用第一个联接和第二个联接,则以下查询无法正常工作。如果我分别加入它们,我会得到正确的结果(见附录)

1+2次加入一个查询:

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'
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'
为什么呢?我想我可以把这两个量合并成一个量

附录

第一次加入:

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'
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'
结果是:

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'
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'
佳能EOS 5Ds R车身50,6MP | 5325

佳能EOS 5Ds车身50,6MP | 5326

佳能EOS 1DX Mark II机身20,2MP.|5802

尼康D5车身20,7MP | 6162

第二次加入:

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'
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'
结果是:

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'
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'
佳能EOS 5D Mark IV车身30,4MP | 5965

两者一起:

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'
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'

空结果

改为尝试外部联接。内部联接将只返回那些与所有条件匹配的项。

看起来您必须使用外部联接如何在mysql中创建外部联接?我看到实际上没有这样的mysql命令。通过web搜索,您可以找到大量关于外部连接的信息。非常简短的版本:外部联接将返回一个结果,就像它是一个“或”等式,而内部联接的功能更像一个“和”。用法与内部联接示例相同。只需将“内部”替换为“外部”,您就可以得到想要的结果。