开发者社区> 问答> 正文

mysql 联合查询

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

展开
收起
蛮大人123 2016-02-06 14:32:53 2361 0
1 条回答
写回答
取消 提交回答
  • 做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') )

    2019-07-17 18:38:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像