重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以
创新互联是一家专业提供大同企业网站建设,专注与做网站、成都做网站、H5技术、小程序制作等业务。10年已为大同众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
文章表article中可以再设计一个栏目ID作为主栏目ID如果有面包屑就可以根据这个显示,不然不能去判断显示属于哪个分类
所有文章就直接关联 关联表和栏目表查出所有文章即可
1、用到MySQL的 FIND_IN_SET() 函数。
2、主表:recruitment_demand,子表:recruitment_jobs
需求:需要查询出主表以及关联的子表中的work_name、和user_num字段,work_name拼接起来用逗号隔开,以及统计user_num的总和。
查询语句:
结果图:
select * from 表名 where toId in(select fromId from 表名 where toId = 3) or toId = 3
或
select * from 表名 where toId in((select fromId from 表名 where toId = 3), 3)
1.新建表
create table websites(id int not null, name varchar(32), url varchar(100) not null ,alexa int not null , country varchar(32));
插入数据
insert into websites values(1,'Google',' ',1,'USA' );
insert into websites values(2,'taobao',' ',13,'CN' );
insert into websites values(3,'cainiao',' ',4689,'CN' );
insert into websites values(4,'weibo',' ',20,'CN' );
insert into websites values(5,'Facebook',' ',3,'USA' );
insert into websites values(7,'stackoverflow',' ',0,'IND' );
create table access_log(aid int not null, site_id int not null, count int, date varchar(100));
insert into access_log values(1,1,45,'2016-05-10');
insert into access_log values(2,3,100,'2016-05-13');
insert into access_log values(3,1,23,'2016-05-14');
insert into access_log values(4,2,10,'2016-05-14');
insert into access_log values(5,5,205,'2016-05-14');
insert into access_log values(6,4,13,'2016-05-15');
insert into access_log values(7,3,220,'2016-05-15');
insert into access_log values(8,5,545,'2016-05-16');
insert into access_log values(9,3,201,'2016-05-17');
insert into access_log values(10,6,111,'2016-03-19');
select * from mysql.test.websites
| 1 | Google | | 1 | USA |
| 2 | 淘宝 | | 13 | CN |
| 3 | 菜鸟教程 | | 4689 | CN |
| 4 | 微博 | | 20 | CN |
| 5 | Facebook | | 3 | USA |
| 7 | stackoverflow | | 0 | IND |
+-----+---------+-------+------------+
| aid | site_id | count | date |
+-----+---------+-------+------------+
| 1 | 1 | 45 | 2016-05-10 |
| 2 | 3 | 100 | 2016-05-13 |
| 3 | 1 | 230 | 2016-05-14 |
| 4 | 2 | 10 | 2016-05-14 |
| 5 | 5 | 205 | 2016-05-14 |
| 6 | 4 | 13 | 2016-05-15 |
| 7 | 3 | 220 | 2016-05-15 |
| 8 | 5 | 545 | 2016-05-16 |
| 9 | 3 | 201 | 2016-05-17 |
+-----+---------+-------+------------+
2.关联查询
内连接
SELECT *
FROM Websites
INNER JOIN access_log
ON Websites.id=access_log.site_id
ORDER BY Websites.id;
左连接
SELECT Websites.name, access_log.count, access_log.date
FROM Websites
LEFT JOIN access_log
ON Websites.id=access_log.site_id
ORDER BY access_log.count DESC;
右连接
SELECT Websites.name, access_log.count, access_log.date
FROM Websites
RIGHT JOIN access_log
ON Websites.id=access_log.site_id
ORDER BY access_log.count DESC;
全连接
SELECT websites.name, access_log.count, access_log.date
FROM websites
FULL OUTER JOIN access_log
ON access_log.site_id=websites.id
ORDER BY access_log.count DESC;
来自MySQL的学习笔记,写的不对的地方大家多多指教哦
什么是外键?
假设有 2 个表,分别是表 A 和表 B,它们通过一个公共字段“id”发生关联关系,我们把这个关联关系叫做 R。如果“id”在表 A 中是主键,那么,表 A 就是这个关系 R 中的主表。相应的,表 B 就是这个关系中的从表,表 B 中的“id”,就是表 B 用来引用表 A 中数据的,叫外键。所以,外键就是从表中用来引用主表中数据的那个公共字段。
语法结构:
在创建表时添加外键约束:
在修改表时定义外键约束:
例子1:创建表时添加外键约束
首先创建主表:importhead
创建从表:test_mysql.importdetails
查询外键约束的相关信息:
查询结果为:
例子2:修改表时定义外键约束
修改表时定义从表test_mysql.importdetails的外键约束
删除外键约束使用DROP,语法结构为:
例子:删除从表test_mysql.importdetails的外键约束
在 MySQL 中,有 2 种类型的连接,分别是内连接(INNER JOIN)和外连接(OUTER JOIN)。
在 MySQL 里面,关键字 JOIN、INNER JOIN、CROSS JOIN 的含义是一样的,都表示内连接。我们可以通过 JOIN 把两个表关联起来,来查询两个表中的数据。
例子:有一张销售表,如下图:
有一张会员信息表,如下图:
通过内连接,查询会员的销售记录:
运行语句,结果如下:
根据上面的结果,其实可以得知:内连接查询到结果集为两个表的交集部分。
跟内连接只返回符合连接条件的记录不同的是,外连接还可以返回表中的所有记录,它包括两类,分别是左连接和右连接。
例子1:左外连接
如果需要查询所有销售记录,则可以使用左外连接
运行语句,结果为:
从上面的结果可以得知,LEFT JOIN左边的表会返回全部记录,而右边的表只返回符合连接条件的记录
例子2:右外连接:
运行语句,结果为:
从上面的结果可以得知,RIGHT JOIN右边的表会返回全部记录,而左边的表只返回符合连接条件的记录