84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
最近在做一个mysql+nodeJS的博客,只是用来练手,由于PHP不会,所以用node作为后台语音开发遇到的查询问题是文章和分类是一对一的文章和标签是一对多的请问这个mysql怎么写,在下是前端,会点简单的mysql,所以就当学习这个吧,最好能丢出sql语句我琢磨琢磨
表结构如下图
图片来源于图片来源,我就没有去做,只是合并了下
跪求各位的文章详情查询的sql语句
人生最曼妙的风景,竟是内心的淡定与从容!
用关联查询,或者in子查询首先你要提供你的查询需求,要查什么,查询条件是什么,查询结果是什么。讲清楚场景才能写出SQL来
我试着写了一下,效率可能低了一点,不过功能应该是对的
CREATE TABLE `articles` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ; CREATE TABLE `tags` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ; CREATE TABLE `tag_links` ( `aid` int(11) NOT NULL, `tid` int(11) NOT NULL, PRIMARY KEY (`aid`,`tid`) ); -- insert demo data INSERT INTO `articles` (`id`,`title`) VALUES (1,'xxx'),(2,'a'),(3,'b'); INSERT INTO `tags` (`id`,`name`) VALUES (1,'php'),(2,'java'),(3,'sql'); INSERT INTO `tag_links` (`aid`,`tid`) VALUES (1,2),(1,3); INSERT INTO `tag_links` (`aid`,`tid`) VALUES (2,1),(2,3); -- query statement SELECT a.title as 'title', ( SELECT GROUP_CONCAT(t.name,' ') FROM `tags` t LEFT JOIN `tag_links` tl ON t.id=tl.tid WHERE tl.aid=a.id ) as 'tags' FROM `articles` a;
先查出文章记录,在查对应的标签关联,然后查找标签关联对应标签表的记录
用关联查询,或者in子查询
首先你要提供你的查询需求,要查什么,查询条件是什么,查询结果是什么。讲清楚场景才能写出SQL来
我试着写了一下,效率可能低了一点,不过功能应该是对的
先查出文章记录,在查对应的标签关联,然后查找标签关联对应标签表的记录