在左连接前过滤表
要在执行左连接之前过滤表,请在 JOIN 语句的 ON 子句中应用过滤条件。在本例中,目标是在将 Entry 表连接到 Customer 表之前,按 Category 列过滤 Entry 表,其值为 'D'。
<code class="language-sql">SELECT c.Customer, c.State, e.Entry FROM Customer c LEFT JOIN Entry e ON c.Customer = e.Customer AND e.Category = 'D'</code>
在此查询中,ON 子句按 Category 列过滤 Entry 表,确保只有 Category = 'D' 的行包含在连接操作中。这允许您检索 Customer 表中的所有记录,而不管它们是否在 Entry 表中具有相关记录,同时过滤掉任何不符合指定 Category 条件的无关条目。
此查询的结果将是:
<code>╔══════════╦═══════╦═══════╗ ║ Customer ║ State ║ Entry ║ ╠══════════╬═══════╬═══════╣ ║ A ║ S ║ 5575 ║ ║ A ║ S ║ 3215 ║ ║ B ║ V ║ 4445 ║ ║ C ║ L ║ NULL ║ ╚══════════╩═══════╩═══════╝</code>
这与预期结果相符,其中包含 Customer 表中的所有行,以及按 Category = 'D' 过滤的 Entry 表中的匹配条目。
以上是如何在左连接之前使用 ON 子句过滤表?的详细内容。更多信息请关注PHP中文网其他相关文章!