Q&A:如何實(shí)現(xiàn)多個(gè)表鏈?zhǔn)竭B接?
-- CREATE SCHEMA SQLCOURSE
CREATE TABLE SQLCOURSE.tblFood
(
/*
自增id
產(chǎn)品標(biāo)準(zhǔn)號(hào)
食品名
配料表
營(yíng)養(yǎng)成分表
生產(chǎn)商編號(hào)
價(jià)格
生產(chǎn)日期tblFood
保質(zhì)期
*/
fid int auto_increment,
fStdNum varchar(15),
fName varchar(20) not null,
fIngrelist varchar(300),
fNutriLabel varchar(300),
fManuCode varchar(5),
fPrice decimal,
fProdDate varchar(25),
fShelfLife varchar(25),
primary key(fid,fStdNum)
);
-- drop table SQLCOURSE.tblFood
CREATE TABLE SQLCOURSE.tblManu
(
mid int auto_increment,
fManuCode varchar(5),
fManuInfo varchar(50),
primary key(mid,fManuCode)
);
INSERT
INTO SQLCOURSE.tblFood(fStdNum,fName,fManuCode)
VALUE('GB17401','上好佳薯?xiàng)l番茄味','R');
INSERT
INTO SQLCOURSE.tblManu(fManuCode,fManuInfo)
VALUE('R','湖北上好佳食品工業(yè)有限公司');
SELECT tblFood.*,tblManu.fManuInfo
FROM tblFood
LEFT JOIN tblManu
ON tblFood.fManuCode = tblManu.fManuCode
CREATE TABLE SQLCOURSE.tblEquipObject
(
/*
自增id
裝備名稱
縮略圖
部位代碼
限制等級(jí)
限制職業(yè)
裝備品級(jí)
基本屬性
獲得方式
說明
*/
eid int auto_increment,
eName varchar(30) not null,
eImg longblob,
ePartCode varchar(2),
eLimitLevel int,
eLimitCareer varchar(2),
eGrade varchar(2),
eProperty varchar(50),
eGainMethod varchar(50),
eDesc varchar(100),
primary key(eid,eName)
);
CREATE TABLE SQLCOURSE.tblPartInfo
(
pid int auto_increment,
ePartCode varchar(2),
ePartInfo varchar(20),
primary key(pid,ePartCode)
);
CREATE TABLE SQLCOURSE.tblPlayer
(
playerid int auto_increment,
pStdId varchar(20),
eName varchar(12),
primary key(playerid,pStdId)
);
-- drop table tblPlayer
INSERT
INTO tblPlayer(pStdId,eName)
VALUE('0001','修好的帝國(guó)短袍');
insert
into tblPartInfo(ePartCode,ePartInfo)
value('B','BodyDefense');
insert
into tblEquipObject(
eName,
ePartCode,
eLimitCareer,
eGrade,
eProperty,
eGainMethod,
eDesc
)
value('修好的帝國(guó)短袍','B','NA','S','PHYS:6,MAGIC:13','任務(wù)獎(jiǎng)勵(lì)','道具分解:裁衣匠');
create view vwPlayerEquip
as
select tblPlayer.pStdId,tblPlayer.eName,tblEquipObject.eProperty,tblEquipObject.ePartCode
from tblPlayer
left join tblEquipObject
on (tblPlayer.eName = tblEquipObject.eName)
inner join tblPartInfo C
on (tblEquipObject.ePartCode = C.ePartCode)