MySQL 三張表聯集查詢

來源:互聯網
上載者:User

MySQL 三張表聯集查詢

MySQL 三張表聯集查詢

1.表結構
1.1.圖片表(存放圖片)

CREATE TABLE `tb_pic` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增長 id',  `url` varchar(255) DEFAULT NULL COMMENT '圖片 url 路徑',  `description` varchar(255) DEFAULT NULL COMMENT '圖片描述',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='圖片表';

1.2.標籤表(存放標籤)

CREATE TABLE `tb_flag` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增長 id',  `name` varchar(255) DEFAULT NULL COMMENT '標籤名稱',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='標籤表';

1.3.圖片標籤連結資料表(圖片、標籤中間表)

CREATE TABLE `tb_pic_flag_link` (  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增長 id',  `pic_id` int(11) DEFAULT NULL COMMENT '圖片 id',  `flag_id` int(11) DEFAULT NULL COMMENT '標籤 id',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='圖片標籤連結資料表';

2.實現的效果
2.1.查詢單張圖片的描述
效果:

查詢語句:

#查詢單張圖片,及其描述SELECT p.id, p.url, p.description, GROUP_CONCAT(f.`name`)from tb_pic p, tb_pic_flag_link l, tb_flag fwhere p.id = l.pic_id and l.flag_id=f.id and p.id=1;

2.2.查詢所有圖片的描述
效果:

查詢語句:

#查詢多張圖片,及其描述SELECT p.id, p.url, p.description, GROUP_CONCAT(f.`name`)from tb_pic p, tb_pic_flag_link l, tb_flag fwhere p.id = l.pic_id and l.flag_id=f.id GROUP BY p.id;

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.