当前位置: 首页 > 面试题库 >

SQL JOIN-WHERE子句与ON子句

孙阳舒
2023-03-14
问题内容

有什么区别,每个应该有什么区别?

如果我正确理解该理论,则查询优化器应该可以互换使用。


问题答案:

它们不是同一件事。

考虑以下查询:

SELECT *
FROM Orders
LEFT JOIN OrderLines ON OrderLines.OrderID=Orders.ID
WHERE Orders.ID = 12345

SELECT *
FROM Orders
LEFT JOIN OrderLines ON OrderLines.OrderID=Orders.ID 
    AND Orders.ID = 12345

第一个将返回订单及其订单号的行(如果有)12345。第二个将返回所有订单,但只有订单12345将具有与之关联的任何行。

使用INNER JOIN,子句 实际上是 等效的。但是,仅仅因为它们在功能上相同而产生相同的结果,并不意味着这两种子句具有相同的语义。



 类似资料:
  • 问题内容: 为简单起见,假设所有相关字段均为。 你可以做: 要不然: 这两个工作方式是否相同? 问题答案: 是您应该使用的ANSI语法。 通常认为它更具可读性,尤其是当您连接许多表时。 只要有需要,也可以轻松地将其替换为。 该语法更关系模型为主。 两个表ed的结果是表的笛卡尔积,将对其应用过滤器,该过滤器仅选择连接列匹配的那些行。 使用语法更容易看到这一点。 以您的示例为例,在MySQL(通常在S

  • 问题内容: 我今天输入了错误的查询,但它仍然有效,并给出了预期的结果。我的意思是运行此查询: 但是我不小心跑了这个查询 (请注意,而不是最后一个子句中的) 并且都从用户ID返回了正确的员工ID。 这两个查询有什么区别?第二种形式是否仅联接满足条件的2个表的成员,而第一种形式将联接整个表,然后运行查询?一个效率比另一个效率高吗?还有其他我想念的东西吗? 谢谢! 问题答案: 对于这样的内部联接,它们在

  • 我可以通过两种方式来实现这一点,使用where子句或join查询,在spark SQL中哪个更快?为什么?Where子句比较列添加、选择那些记录还是在列本身上联接,哪个更好?

  • 本章提供了有关如何使用JDBC应用程序从表中选择记录的示例。 这将在从表中选择记录时使用WHERE子句添加其他条件。 在执行以下示例之前,请确保您具备以下示例 - 要执行以下示例,您可以使用实际用户名和密码替换用户名和密码。 您的MySQL或您正在使用的任何数据库已启动并正在运行。 所需的步骤 (Required Steps) 使用JDBC应用程序创建新数据库需要以下步骤 - Import the

  • 在MariaDB中,子句与,,和语句一起使用来选择或更改想要更改的满足指定特定行记录。 它是一个在表名后面出现的语句。 语法 注意:子句是一个可选的子句。它可以和,,,运算符一起使用。 1. WHERE子句与单一条件 示例: 我们有一个表,里边有一些数据。假设要查询表中的小于的所有记录。 执行上面查询语句,得到以下结果 - 2. WHERE子句与AND条件 为了方便演示,这里再插入一条数据 - 当

  • 主要内容:语法,实例SQLite的 WHERE 子句用于指定从一个表或多个表中获取数据的条件。 如果满足给定的条件,即为真(true)时,则从表中返回特定的值。您可以使用 WHERE 子句来过滤记录,只获取需要的记录。 WHERE 子句不仅可用在 SELECT 语句中,它也可用在 UPDATE、DELETE 语句中,等等,这些我们将在随后的章节中学习到。 语法 SQLite 的带有 WHERE 子句的 SELECT