筛选连接两个表的列

时间:2018-04-04 12:16:56

标签: sql join

下两个查询是否会返回相同的结果集?

SELECT * FROM tableA a
JOIN tableB b
ON a.id = b.id
WHERE a.id = '5' 
--------------------------------
SELECT * FROM tableA a
JOIN tableb b
ON a.id = b.id
WHERE b.id = '5' 

另外,如果使用LEFT JOIN代替JOIN,答案会有所不同吗?

3 个答案:

答案 0 :(得分:1)

如上所述,他们将返回相同的结果。

两者不一定会以left join返回相同的结果。

答案 1 :(得分:1)

是的,结果将是相同的。

使用左连接,您将获得两个表中获得ID的每个数据集。 使用连接(内部连接),您将只获得a.id = b.id。

的数据集

本网站将向您解释如何加入https://www.w3schools.com/sql/sql_join.asp

答案 2 :(得分:0)

是的,他们会的。默认情况下,简单join的工作方式类似于内连接。它会检查两个表上是否存在您加入的项目的实例。由于您已加入a.id=b.id,因此结果将相同。

如果您将联接类型更改为左侧,则结果将包括所有a.id' s,无论它们是否等于5。