当前位置: 首页 > news >正文

怎样保存网站资料 做证据/网络营销策划需要包括哪些内容

怎样保存网站资料 做证据,网络营销策划需要包括哪些内容,一个专做里番的网站,社交网站是怎么做的1、连接查询(join) 连接查询指的是将两张表或多张表关联到一起进行查询,获取一个表的行与另一个表的行匹配的数据。常见的连接查询包括内连接(等值连接)、左(外)连接、右(外&#x…

1、连接查询(join)

连接查询指的是将两张表或多张表关联到一起进行查询,获取一个表的行与另一个表的行匹配的数据。常见的连接查询包括内连接(等值连接)、左(外)连接、右(外)连接和交叉连接(完全连接)等。
我们将用户表users和文章表posts关联到一起进行查询,在此之前,我们先创建posts表,其字段及初始值如下:
这里写图片描述
其中user_id对应users表中的用户id。

1.1 内连接

内连接用于获取两张表结果集的交集部分,我们可以使用查询构建器的join方法进行内连接查询:

$users = DB::table('users')->join('posts','users.id','=','posts.user_id')->get();
dd($users);

显示结果如下:

array:3 [▼0 => {#226 ▼+"id": 1+"name": "Laravel"+"email": "laravel@test.com"+"password": "123"+"remember_token": "x"+"created_at": "0000-00-00 00:00:00"+"updated_at": "0000-00-00 00:00:00"+"title": "test1"+"content": "test1"+"user_id": 1}1 => {#227 ▼+"id": 2+"name": "Laravel"+"email": "laravel@test.com"+"password": "123"+"remember_token": "x"+"created_at": "0000-00-00 00:00:00"+"updated_at": "0000-00-00 00:00:00"+"title": "test2"+"content": "test2"+"user_id": 1}2 => {#228 ▼+"id": 3+"name": "Academy"+"email": "academy@test.com"+"password": "123"+"remember_token": "y"+"created_at": "0000-00-00 00:00:00"+"updated_at": "0000-00-00 00:00:00"+"title": "test3"+"content": "test3"+"user_id": 2}
]

1.2 左连接

左连接的结果集指定的左表的所有行,如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。我们使用查询构建器的leftJoin方法进行左连接查询:

$users = DB::table('users')->leftJoin('posts','users.id','=','posts.user_id')->get();
dd($users);
array:4 [▼0 => {#226 ▶}1 => {#227 ▶}2 => {#228 ▶}3 => {#229 ▼+"id": null+"name": "test3"+"email": "test3@test.com"+"password": "123456"+"remember_token": "z"+"created_at": null+"updated_at": null+"title": null+"content": null+"user_id": null}
]

1.3 更加复杂的连接查询

很多时候,连接查询的查询条件往往更为复杂,并不是一个简单的join/leftJoin方法就能搞定的,那么我们如何添加更加复杂的查询条件呢?使用JoinClause代替条件参数:

$users = DB::table('users')->join('posts',function($join){$join->on('users.id','=','posts.user_id')->where('posts.id','>',1);
})->get();
dd($users);

输出结果为:

array:2 [▼0 => {#226 ▼+"id": 2+"name": "Laravel"+"email": "laravel@test.com"+"password": "123"+"remember_token": "x"+"created_at": "0000-00-00 00:00:00"+"updated_at": "0000-00-00 00:00:00"+"title": "test2"+"content": "test2"+"user_id": 1}1 => {#227 ▼+"id": 3+"name": "Academy"+"email": "academy@test.com"+"password": "123"+"remember_token": "y"+"created_at": "0000-00-00 00:00:00"+"updated_at": "0000-00-00 00:00:00"+"title": "test3"+"content": "test3"+"user_id": 2}
]

2、联合查询(union)

联合查询用于将两个或更多查询的结果集组合为单个结果集,该结果集包含联合查询中所有查询的全部行。UNION的结果集列名与UNION运算符中第一个Select语句的结果集的列名相同,另一个Select语句的结果集列名将被忽略,且其他查询字段数必须和第一个相同。Laravel查询构建器中我们使用union方法进行联合查询:

$users = DB::table('users')->where('id','<',3);
$users = DB::table('users')->where('id','>',2)->union($users)->get();
dd($users);

输出结果为:

array:3 [▼0 => {#226 ▼+"id": 3+"name": "test3"+"email": "test3@test.com"+"password": "123456"+"remember_token": "z"+"created_at": "2016-03-08 09:45:10"+"updated_at": "0000-00-00 00:00:00"}1 => {#227 ▼+"id": 1+"name": "Laravel"+"email": "laravel@test.com"+"password": "123"+"remember_token": "x"+"created_at": "2016-03-15 09:45:03"+"updated_at": "0000-00-00 00:00:00"}2 => {#228 ▼+"id": 2+"name": "Academy"+"email": "academy@test.com"+"password": "123"+"remember_token": "y"+"created_at": "2016-03-13 09:45:07"+"updated_at": "0000-00-00 00:00:00"}
]
3where子句

使用查询构建器上的where方法可以添加自定义查询条件,调用该方法需要传入三个参数:第一个列名,第二个是操作符,第三个是比较值:

$user = DB::table('users')->where('name','=','Laravel')->get();
dd($user);

如果操作符为“=”,该语句也可简化为:

$user = DB::table('users')->where('name','Laravel')->get();

需要注意的是查询构建器支持方法链,这意味着如果有多个查询条件且这个多个条件是AND连接,可以在get之前使用多个where方法。如果多个条件使用OR连接,可以使用orWhere方法:

$user = DB::table('users')->where('name','Laravel')->orWhere('name','Academy')->get();

更多where子句查询条件可查看Illuminate\Database\Query\Builder源码。

4、排序
查询构建器使用orderBy方法对查询结果进行排序:

$users = DB::table('users')->orderBy('id','desc')->get();
dd($users);

根据代码可以看到orderBy方法需要传入两个参数,第一个是排序字段,第二个是排序方向,asc代表升序,desc代表倒序

5、分组

为了更好地演示分组,我们给数据表posts新增两个字段:cat_id和views,代表分类ID和浏览数:
这里写图片描述
分组一般用于聚合查询,接下来我们使用groupBy方法对查询结果进行分组,比如我们可以统计每个分类下有几篇文章:

$posts = DB::table('posts')->select('cat_id',DB::raw('COUNT(id) as num'))->groupBy('cat_id')->get();
dd($posts);
array:2 [▼0 => {#226 ▼+"cat_id": 1+"num": 2}1 => {#227 ▼+"cat_id": 2+"num": 1}
]

我们还可以使用having方法为分组加上条件,比如我们可以统计总浏览数大于500的分类:

$posts = DB::table('posts')->select('cat_id',DB::raw('SUM(views) as views'))->groupBy('cat_id')->having('views','>',500)->get();
dd($posts);

输出结果为:

array:1 [▼0 => {#226 ▼+"cat_id": 1+"views": "900"}
]

注意:having中的条件字段必须出现在select查询字段中,否则会报错。
6、分页

查询构建器中使用skip和take对查询结果进行分页,相当于SQL语句中的limit语句:

$posts = DB::table('posts')->skip(0)->take(2)->get();
dd($posts);

对应的输出结果为:

array:2 [▼0 => {#225 ▼+"id": 1+"title": "test1"+"content": "test1"+"user_id": 1+"created_at": "0000-00-00 00:00:00"+"updated_at": "0000-00-00 00:00:00"+"cat_id": 1+"views": 100}1 => {#226 ▼+"id": 2+"title": "test2"+"content": "test2"+"user_id": 1+"created_at": "0000-00-00 00:00:00"+"updated_at": "0000-00-00 00:00:00"+"cat_id": 2+"views": 500}
]
http://www.jmfq.cn/news/4808593.html

相关文章:

  • 金乡县住房与城乡建设局网站/企业网络营销方案策划
  • 易购商城网站怎么做啊/2022网站seo
  • 太平洋建设 网站/网络营销环境分析包括哪些内容
  • 公司怎么做网站需要多少钱/手机流畅优化软件
  • 用网站做CAN总线通信好吗/百度推广的几种方式
  • 企业网站系统详细设计/培训方案
  • 济南网站设计公司推荐/数字营销公司排行榜
  • 旅游公司网站建设/网络推广方式方法
  • 颍上县建设局网站/北京网站
  • wordpress默认模版/推推蛙贴吧优化
  • 福州网站建设推广/百度站长联盟
  • 重庆做网站的/友情链接网站免费
  • 网站建设天天软文靠谱/百度下载并安装最新版
  • 成都网站建设专家/长春seo公司
  • seo百家外链网站/百度app旧版本下载
  • 免费做网站. 优帮云/什么是百度推广
  • 湖北企业网站建设多少钱/天津关键词优化平台
  • 我的世界手机做图的网站/服装市场调研报告范文
  • 网站底部代码大全/百度信息流开户多少钱
  • 郑州网站建设排行榜/无锡网站推广公司
  • 自己可以建网站吗/win10优化大师
  • 蒙古文网站建设/西安今天刚刚发生的新闻
  • 网站后台修改的页面不能显示/西安企业网站seo
  • 站长工具精品国语日语/永久免费的建站系统有哪些
  • 网站建设产品说明书/怎样做一个自己的网站
  • 有哪些网站可以做家教/今日头条新闻最新疫情
  • 网站内容策略/山东济南seo整站优化费用
  • 网站建设 摊销年限/搜索引擎优化自然排名
  • 网站做推广有用吗/青岛seo青岛黑八网络最强
  • 做的网站如何全屏代码/上海sem