以下,有四張表:遊戲類型表,遊戲表,點卡和遊戲關係表,點卡表網絡
CREATE TABLE `gamesType`(
`tId` INT AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT'遊戲類型編號',
`tName` VARCHAR(10) NOT NULL COMMENT'遊戲類型名稱'
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='遊戲類型表';遊戲
CREATE TABLE `games`(
`gid` INT AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT'遊戲編號',
`gName` VARCHAR(10) NOT NULL COMMENT'遊戲名稱',
`tId` INT NOT NULL COMMENT'所屬遊戲類型'
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='遊戲表';ci
CREATE TABLE `gameOrCard`(
`id` INT AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT'編號',
`cid` INT NOT NULL COMMENT'點卡編號',
`gId` INT NOT NULL COMMENT'支持支付遊戲編號'
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='點卡和遊戲關係表';it
CREATE TABLE `cards`(
`cId` INT AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT'點卡編號',
`cName` VARCHAR(20) NOT NULL COMMENT'點卡名稱',
`titleImg` VARCHAR(20) NOT NULL COMMENT'點卡圖標',
`iniPrice` DOUBLE NOT NULL COMMENT'原價格',
`price` DOUBLE NOT NULL COMMENT'售價',
`cInfo` VARCHAR(200) NOT NULL COMMENT'點卡介紹',
`praiseRate` DOUBLE NOT NULL COMMENT'好評率',
`upTime` TIMESTAMP NOT NULL COMMENT'上架時間',
`isShelves` INT(1) NOT NULL COMMENT'上架狀態0上架1下架',
`number` INT NOT NULL COMMENT'數量'
)ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='點卡表';class
上述已經創建好了主外鍵關係。im
要查找「遊戲類型爲網絡遊戲的遊戲信息及其支持該遊戲充值得點卡信息,而且該點卡爲上架狀態」:支付
SELECT c.*,g.* FROM `cards` AS c JOIN `gameOrCard` AS ga ON c.cid=ga.cid JOIN `games` AS g ON g.`gid`=ga.`gid` WHERE `tid`=1 AND c.isShelves=0 ORDER BY g.gid;di