mysql 内连接、左连接、右连接

记录备忘下,初始数据如下:

DROP TABLE IF EXISTS t_demo_product;
CREATE TABLE IF NOT EXISTS t_demo_product(
    proid int(20),
    proname varchar(20),
    price int(10),
    PRIMARY KEY(proid)
)ENGINE=InnoDB  DEFAULT CHARSET=gbk;

DROP TABLE IF EXISTS t_demo_operation;
CREATE TABLE IF NOT EXISTS t_demo_operation(
    opid  int(10),
    proid int(20),
    opcount int(10),
    PRIMARY KEY(opid)
)ENGINE=InnoDB  DEFAULT CHARSET=gbk;


insert into t_demo_product(proid, proname, price) values
(1,'产品A','10')
,(2,'产品B','11')
,(3,'产品C','12')
,(4,'产品D','13')
,(5,'产品E','14');

insert into t_demo_operation(opid, proid, opcount) values
(1,1,2)
,(2,3,6)
,(3,3,1)
,(4,4,3)
,(5,7,3);

//内连接,不允许未空
select * from t_demo_product a, t_demo_operation b where a.proid = b.proid;
select * from t_demo_product a join t_demo_operation b on a.proid = b.proid;

//左连接,以t_demo_product为主,若对应存在多条记录则记录多条,无则为空
select * from t_demo_product a left join t_demo_operation b on a.proid = b.proid;

//右连接, 以t_demo_operation为主,若对应多条则记录多条,无则为空
select * from t_demo_product a right join t_demo_operation b on a.proid = b.proid;

原文地址:https://www.cnblogs.com/Fredric-2013/p/5082613.html