根据一个属性在查询两张表在数据库中和后端中的显示方法

有两张表:
商品类型表(goodsType_jxc):主表
商品表(goods_jxc):子表

---下面代码在mysql 中写的:

--创建商品表:
--auto_increment表示自增长
--engine=InnoDB auto_increment =10:表示自增长的初始值为10 默认自动增长为1
create table goods_jxc(
goodId_jxc int not null auto_increment,
typeId_jxc int not null,
goodsName_jxc varchar(50) not null,
borthday_jxc varchar(100) not null,
goodsPrice_jxc varchar(100)  not null,
goodsKucun_jxc int not null,
picture_jxc varchar(1000),
remark_jxc text,
primary key (goodId_jxc)
)engine=InnoDB auto_increment =10;

--创建商品类型表
create table if not exists goodsType_jxc(
typeId_jxc int not null auto_increment,   
typeName_jxc varchar (50) not null,
primary key (typeId_jxc)
)engine=InnoDB auto_increment =10 ;

#设置外键alter#设置外键
---怎么创建外键:主表的主键作为外键 (下面typeId_jxc是主表的主键)
alter table goods_jxc
add constraint FK_goods_jxc_goodsType_jxc_typeId_jxc
foreign key(typeId_jxc) references goodsType_jxc(typeId_jxc);

--插入数据
--这里指的注意的是 在sql servier 中当主键使用了自增长插入数据的时候不需要管直接插入后面的数据
--但是在mysql 中主键自增长插入数据的时候需要用null或者0 代替
insert into goods_jxc values(null,10,'唐三彩','唐朝后期','1234',123,12,'真货');
insert into goodsType_jxc values(null,'jxc');

在数据库中查询连接的两张表:
(1)这是两张表的属性都显示出来:
方式:select * form A表 inner join B表 on A表.外键=B表.主键

select * from goods_jxc inner join goodsType_jxc on goods_jxc.typeId_jxc=goodsType_jxc.typeId_jxc;

(2)一张表显示另一张表显示其中一些属性
方式:在上面的方式下推出来的

select goods_jxc.*, goodsType_jxc.typeName_jxc from goods_jxc inner join goodsType_jxc on goods_jxc.typeId_jxc=goodsType_jxc.typeId_jxc;

在后端中怎么根据一个属性查询联合的两张表:
这里以根据商品表的goodId_jxc 查询商品,并且可以看见这个商品的类型
方式:这个我在其他的代码中推出来的,这里要注意的是id的确定

select gt.*,gy.typeName_jxc from goods_jxc gt,goodsType_jxc gy 
where gt.goodId_jxc=#{goodId_jxc} and gt.typeId_jxc = gy.typeId_jxc;

猜你喜欢

转载自blog.csdn.net/qq_45760909/article/details/109477095