sql - 连接条件为 where 子句时使用的连接类型

标签 sql join

我想获得有关使用什么类型的联接的详细信息 对于此查询。

select table1.column, table2.column
from table1, table2
where table1.key = table2.key
and (some filter conditions)

最佳答案

当您使用这样的符号时:

table1,table2 您正在构建一个潜在的CROSS JOIN,但您已在 WHERE 子句中放入条件 table1.key = table2.key 这样你的CROSS JOIN就变成了INNER JOIN

我建议您使用关于 JOIN 的显式表示法,而不是像您的查询那样使用逗号,这样写:

select table1.column, table2.column
from table1
inner join table2
on table1.key = table2.key
where (some filter conditions)

通过这种方式,您可以确切地知道要使用哪个JOIN,如果您错过了某些子句(如 ON),SQL 解析器会警告您

关于sql - 连接条件为 where 子句时使用的连接类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26122788/

相关文章:

php - MySQL Pull All records with join 问题

sql - 尝试使用带有SUM函数的INNER JOIN和GROUP BY SQL,不起作用

php - 在单个查询中从一个表中选择 SUM+COUNT 并从另一个表中选择 COUNT

格式为 dd.MM.yyyy 的 c# SQL 查询错误

php - 根据表单输入从 SQL 数据库中提取数据

mysql - 如何在 MYSQL 中查询一行并将结果连接到另一个表中的一行?

php - 可以让MySQL在某些条件下忽略连接吗?

sql - COALESCE 的逆

java - 使用 Java 批量查询 ORACLE 数据库的最快方法

sql - 稀疏连接中的 PostgreSQL 慢 WHERE 子句