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

thinkphp做网站有什么好处济南建站详情

thinkphp做网站有什么好处,济南建站详情,wordpress交易,99企业邮箱888在MySQL中#xff0c;LEFT JOIN用于返回左表#xff08;即LEFT JOIN关键字左边的表#xff09;的所有记录#xff0c;即使在右表中没有匹配的记录。对于那些右表中没有匹配的记录#xff0c;结果集中右表的部分会被填充为NULL。关于ON和WHERE子句的使用#xff0c;它们在…在MySQL中LEFT JOIN用于返回左表即LEFT JOIN关键字左边的表的所有记录即使在右表中没有匹配的记录。对于那些右表中没有匹配的记录结果集中右表的部分会被填充为NULL。关于ON和WHERE子句的使用它们在LEFT JOIN中的作用是不同的 ON 子句用于定义连接条件即决定哪些记录应该被连接在一起。当你需要基于左右表的某些字段值的关系来组合记录时这些条件应该放在ON后面。如果在ON后面还有对右表的额外条件限制这些也会在连接时应用但不会影响左表返回所有记录的原则。WHERE 子句用于对已经通过JOIN操作产生的结果集进行进一步的过滤。当条件放在WHERE子句中时那些不符合条件的记录无论是左表的还是右表的都会被移除这可能会影响到左表返回所有记录的初衷尤其是在处理NULL值时需格外小心。 具体案例一 假设我们有两个表一个是employees员工表另一个是departments部门表我们想找出所有员工及其所在的部门名称即使某些员工没有分配到具体的部门。 employees 表 idname1Alice2Bob3Carol departments 表 idname1HR2IT3Marketing 其中employees表的department_id字段可以是NULL表示没有分配部门。 使用 ON 示例 SELECT employees.name, departments.name AS department_name FROM employees LEFT JOIN departments ON employees.department_id departments.id;这个查询会返回所有员工的名字以及他们对应的部门名字如果员工没有部门即department_id为NULL部门名字则为NULL。 使用 WHERE 示例 SELECT employees.name, departments.name AS department_name FROM employees LEFT JOIN departments ON employees.department_id departments.id WHERE departments.id IS NOT NULL;这个查询试图过滤掉那些部门ID为NULL的记录但由于使用的是LEFT JOIN加上WHERE子句过滤掉NULL的部门ID实际上会导致那些没有分配部门的员工也被排除在外违反了LEFT JOIN的初衷即返回左表所有记录。因此在大多数情况下如果你想保留左表的所有记录应避免在WHERE子句中过滤与右表相关的NULL值而是应该在ON子句中完成所有必要的连接条件和限制。 正确的做法是在ON子句中处理所有连接条件然后仅在确实需要进一步过滤整个结果集而不影响左表完整性时才使用WHERE子句。 具体案例二 假设我们有两个表一个是Orders(订单表)一个是Customers(客户表)我们想找出所有客户的订单信息即使某些客户还没有下过任何订单。 Orders表: OrderIDCustomerIDProductName Customers表: CustomerIDCustomerName 使用ON的例子 如果我们想找到所有客户的订单即使他们没有订单我们会这样写 SELECT Customers.CustomerName, Orders.ProductName FROM Customers LEFT JOIN Orders ON Customers.CustomerID Orders.CustomerID;在这个查询中ON子句确保了每个客户与他们的订单关联即使没有订单的客户也会出现在结果集中其ProductName为NULL。 使用WHERE的例子 如果我们进一步想在结果中只包括那些至少有一个订单的客户我们可能会尝试这样写但这是错误的做法因为它违背了LEFT JOIN的初衷 SELECT Customers.CustomerName, Orders.ProductName FROM Customers LEFT JOIN Orders ON Customers.CustomerID Orders.CustomerID WHERE Orders.OrderID IS NOT NULL; -- 这里会过滤掉左表中无匹配项的记录上述查询实际上会变成内连接的效果因为WHERE子句排除了左表中没有匹配项即订单为NULL的记录。 正确的使用方式 如果我们的目的是在保留所有客户的同时筛选出有订单的客户信息我们应该这样写 SELECT Customers.CustomerName, Orders.ProductName FROM Customers LEFT JOIN Orders ON Customers.CustomerID Orders.CustomerID AND Orders.OrderID IS NOT NULL;在这个修正的查询中我们在ON子句中同时指定了连接条件和筛选条件这样既保证了左表的完整性又对连接后的结果进行了有效的过滤只保留了那些有订单的记录。
http://www.dnsts.com.cn/news/199887.html

相关文章:

  • 武进区住房和城乡建设局网站公明网站建设
  • 淮南网站seo天河微网站建设
  • 网站开发技术包括小程序推广网站
  • 做网站需要会哪些知识顺德网站建设咨询
  • 前端网站如何做全景图哈国际现货交易平台
  • 锦州网站建设渠道视频拍摄公司
  • 郑州网站建设商城定制轻创网
  • 娄底网站建设公司拟定网络设计方案
  • 网站程序的设计费用福州网站开发fjfzwl
  • 网站意识形态建设买微单的网站建设
  • 自己建网站收费吗电子元器件商城
  • 烟台网站优化推广网站空间转移
  • 策划案网站云南软件开发公司
  • 网站域名解析时间网站虚拟主持人代码
  • 公司网站制作知乎怎么制作网站设计
  • 网站建设费会计处理quark搜索引擎入口
  • wordpress作企业网站好吗企业网站建设 毕业设计
  • dw做网站模版高德地图导航放弃重庆
  • 建个官方网站要多少钱建设网站赚钱
  • 网站开发多少人广告设计公司简介模板范文
  • 北京网站设计制作关键词北京建设教育协会
  • 微网站是什么时候创建的wordpress ftp 权限
  • 开发网站代码量网站建设实战
  • 吴中区做网站qq营销推广方法和手段
  • 高职学院网站建设方案两学一做网站网站
  • 高端酒店网站模板怎么做点击文字进入的网站
  • 网站建设定制单电商网站前端模板
  • 网站建设网络安全企业电子商务网站设计的原则
  • 百度收录网站怎么做普洱网站搭建
  • 网站运营团队上海防伪网站建设