mysql 联合查询时,两张表之必须通过他们的主键链接吗?
SELECT R.id,R.fruit_name,R.fruit_pic,R.low_price,R.high_price,M.company_name, FROM tb_release R LEFT JOIN tb_member M on M.id = R.mem_id WHERE ( R.id IN ('5','7','1','6','7') )
做join时不会强制要求必须通过主键进行连接,比如如下两个表:
CREATE TABLE ajoin
(
id
int(11) NOT NULL,
pname
varchar(32) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE bjoin
(
tid
int(11) NOT NULL,
sname
varchar(32) DEFAULT NULL,
PRIMARY KEY (tid
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
通过如下的非主键进行连接是OK的
SELECT R.id,R.pname FROM ajoin R LEFT JOIN bjoin
M on M.sname
= R.pname
WHERE ( R.id IN ('1','2','3') )
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。