1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| #book 表 tags 表 DROP TABLE IF EXISTS `book`; CREATE TABLE `book` ( `bookid` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` char(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`bookid`) ) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
DROP TABLE IF EXISTS `tags`; CREATE TABLE `tags` ( `tid` int(10) unsigned NOT NULL AUTO_INCREMENT, `bookid` int(11) DEFAULT NULL, `content` char(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`tid`) ) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
#------------------- 测试数据 --------------- INSERT INTO `book` VALUES ('5', 'PHP圣经'); INSERT INTO `book` VALUES ('6', 'ruby实战'); INSERT INTO `book` VALUES ('7', 'mysql 运维'); INSERT INTO `book` VALUES ('8', 'ruby服务端编程');
INSERT INTO `tags` VALUES ('10', '5', 'PHP'); INSERT INTO `tags` VALUES ('11', '5', 'WEB'); INSERT INTO `tags` VALUES ('13', '6', 'ruby'); INSERT INTO `tags` VALUES ('14', '7', 'database'); INSERT INTO `tags` VALUES ('15', '8', 'ruby'); INSERT INTO `tags` VALUES ('16', '8', 'server'); INSERT INTO `tags` VALUES ('12', '6', 'WEB');
# 查询:即有 web 标签又有 PPH 标签,要用连接查询 select t1.bookid from tags as t1 inner join tags as t2 on t1.bookid=t2.bookid where t1.content='PHP' and t2.content='WEB';
# 如果在查有其他标签 web php ruby ,关联的又要多了
|