构建数据库查询时,了解 JOIN 和 LEFT JOIN 之间的根本区别至关重要。
在提供的查询中,您在用 LEFT JOIN 替换 INNER JOIN 时遇到了问题。这就提出了一个问题:是否假设没有指定类型的 JOIN 默认为 LEFT JOIN?
不,事实并非如此。
默认情况下,MySQL执行 INNER JOIN,其中仅包含两个表中匹配的行。相反,LEFT JOIN 保留左表(在您的情况下为 DM_Server.Jobs)中的所有行,即使它们在右表中没有相应的匹配项。
举例说明对于这种差异,让我们考虑以下几点:
有关更全面的视觉解释:
INNER JOIN:
Jobs Servers | Jobs_ID | ServerID | |---------|----------| | 1 | 2 | | 2 | 3 | **Result:** | Jobs_ID | ServerID | Description | |---------|----------|------------| | 1 | 2 | Description | | 2 | 3 | Description |
LEFT JOIN:
Jobs Servers | Jobs_ID | ServerID | |---------|----------| | 1 | 2 | | 2 | 3 | | 3 | NULL | **Result:** | Jobs_ID | ServerID | Description | |---------|----------|------------| | 1 | 2 | Description | | 2 | 3 | Description | | 3 | NULL | NULL |
通过理解这种区别,您可以确保您的查询根据您想要的联接类型检索所需的行.
以上是MySQL的JOIN默认为LEFT JOIN吗?的详细内容。更多信息请关注PHP中文网其他相关文章!