php 左连接,17、左连接语法及应用

一、左连接的动态演示

现在有两个表,一个goods表(不包含cat_name),一个是category表(只有cait_id和cat_name两个字段)

我们在goods表中只选择三个字段,然后与category表进行对比,如下图:

c6ec2cd79719

左边goods表中有32个物品,右边category有14个cat_name(少了11)。那么左边goods表与右边category表从上到下两两交叉匹配,共有32*14次匹配。

其中,左边goods表不动,右边category表从上往下进行匹配,在goods表中第一行KD876挨个匹配时,与cat_id=15不匹配,cat_id=14不匹配,一直到cat_id=4时匹配。

然后,第二行诺基亚N85同样匹配,与category表中的cat_id=8进行匹配,专门留下这一行的数据。

按照这个思路,goods表不动,category表不断地从上往下循环滑动,与左边的每一行进行匹配并找到相匹配的行。

二、左连接的语法表示

假设A表在左,不动。B表在A表的右边滑动。

A表与B表通过一个关系来筛选B表的行。

A left join B on 条件 条件为真,则B表对应的行取出

其中,左半部分

c6ec2cd79719

也就是说,可以把左半部分看成一个表C,然后对C表可以再做查询。

问:C表可以查询的列有哪些?

答:AB的列都可以查(因为是两张表组成的新表),自然where,group,having,order by,limit照常使用。

三、报价表的第三个改进版(用左连接来查询)

用左连接,新手的话建议分成两步来写:

第一步:先根据“A left join B on 条件”得到已经关联好的表C(即把下列语句得到的结果集当做表C看)

c6ec2cd79719

第二步:从表C中查询,得到最终想要的结果

c6ec2cd79719

最终,也就是如下语句:

c6ec2cd79719

带入PHP中,利用PHP得到报价单:

c6ec2cd79719

可见,结果与前两篇文章的结果是相同的。这次的实现效率,提升了许多。因为在左连接的过程中,用上了索引(在每一次匹配中,直接利用索引找到该行,有点类似于哈希表的效率?暂时不清楚)。

c6ec2cd79719

比如,我们想要在得到表C以后,我们直接用where筛选出第4个栏目的商品。

c6ec2cd79719

其中,其中左连接以后,再从得到的结果集中查询cat_id等于4的商品。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PHP和MySQL是常用的Web开发技术,以下是PHP连接MySQL并进行基本操作的语法: 1. 连接MySQL数据库: ```php $conn = mysqli_connect($db_servername, $db_username, $db_password, $db_name); ``` 其中,$db_servername是MySQL服务器的名称,$db_username是用户名,$db_password是密码,$db_name是要连接的数据库名称。 2. 查询数据: ```php $sql = "SELECT * FROM table_name"; $result = mysqli_query($conn, $sql); while($row = mysqli_fetch_assoc($result)) { // 处理每一行数据,$row是一个关联数组 } ``` 其中,$sql是SQL查询语句,$result是查询结果的指针,mysqli_fetch_assoc()函数可以逐行获取查询结果。 3. 插入数据: ```php $sql = "INSERT INTO table_name (col1, col2, col3) VALUES ('val1', 'val2', 'val3')"; $result = mysqli_query($conn, $sql); if ($result) { // 插入成功 } else { // 插入失败 } ``` 其中,$sql是SQL插入语句,col1、col2、col3是表中的列名,'val1'、'val2'、'val3'是要插入的数据。 4. 更新数据: ```php $sql = "UPDATE table_name SET col1='val1', col2='val2' WHERE id=1"; $result = mysqli_query($conn, $sql); if ($result) { // 更新成功 } else { // 更新失败 } ``` 其中,$sql是SQL更新语句,col1、col2是表中的列名,'val1'、'val2'是要更新的数据,WHERE子句用于指定要更新的行。 5. 删除数据: ```php $sql = "DELETE FROM table_name WHERE id=1"; $result = mysqli_query($conn, $sql); if ($result) { // 删除成功 } else { // 删除失败 } ``` 其中,$sql是SQL删除语句,WHERE子句用于指定要删除的行。 以上是PHP连接MySQL并进行基本操作的语法,希望对你有所帮助。 ### 回答2: PHP和MySQL是非常常用的编程语言和数据库管理系统,常被用来开发动态网站和应用程序。 PHP是一种服务器端脚本语言,可以嵌入到HTML中使用。它是一种开源的语言,易于学习和使用。PHP可以与HTML和CSS一起使用,使开发人员能够创建交互式网页和应用程序。它支持各种数据库,最常用的是MySQL。 MySQL是一种关系型数据库管理系统,它被广泛用于存储和管理数据。它具有高性能和可靠性,并且易于操作。MySQL使用结构化查询语言(SQL)进行数据操作。SQL是一种标准化的查询语言,用于在数据库中创建、修改和删除数据。PHP和MySQL的结合可以创建动态的、与数据库交互的网站和应用程序。 在PHP中,我们可以使用MySQLi或PDO扩展来连接和操作MySQL数据库。首先,我们需要使用mysqli_connect()函数或PDO的构造函数来建立与数据库的连接。然后,我们可以使用mysqli_query()或PDO的query()方法来执行SQL查询。查询的结果可以使用mysqli_fetch_array()和PDO的fetch()方法来获取。 使用PHP和MySQL可以实现各种数据操作,如插入、更新和删除数据。插入数据可以使用INSERT INTO语句,更新数据可以使用UPDATE语句,删除数据可以使用DELETE FROM语句。 此外,我们还可以使用PHP和MySQL来执行更复杂的查询,如联合查询、子查询和排序等。我们还可以使用PHP的条件语句和循环结构来处理查询结果和显示数据。 综上所述,PHP和MySQL是强大的工具,可以用来开发各种类型的网站和应用程序。对于想要学习Web开发或构建动态网站的人来说,了解PHP和MySQL语法是非常重要的。 ### 回答3: PHP和MySQL是一对常用的编程语言和数据库管理系统(DBMS)的组合。PHP是一种面向Web开发的服务器端脚本语言,而MySQL则是一种用于存储和管理数据的关系型数据库管理系统。 PHP和MySQL的语法相互独立,但可以很好地结合使用。PHP语法可以用来与MySQL数据库进行交互,通过执行SQL查询语句来读取和写入数据库中的数据。 在PHP脚本中,可以使用一些MySQL特定的函数和语句来操作数据库。例如,可以使用mysqli_connect()函数来连接到数据库,使用mysqli_query()函数来执行SQL查询语句,以及使用mysqli_fetch_array()函数来获取查询结果的行数据。 SQL查询语句可以用于从数据库中检索数据、插入新的数据、更新现有的数据或者删除数据。常见的SQL语句包括SELECT、INSERT、UPDATE和DELETE等。可以通过在PHP脚本中构建这些SQL语句,并通过mysqli_query()函数执行它们来与数据库进行交互。 PHP和MySQL还支持预处理语句,可以提高代码的安全性和性能。通过使用预处理语句,可以将SQL查询语句和参数分开,并将参数绑定到查询语句中,以防止SQL注入攻击。 总之,PHP和MySQL的语法相互结合,可以通过PHP脚本与MySQL数据库进行交互和操作数据。了解和掌握PHP和MySQL的语法,可以更好地开发和管理Web应用程序的数据库部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值