我们可以使用右连接而不是左连接,反之亦然,只需在查询中翻转表位置即可。那么为什么我们需要两个连接?
答案 0 :(得分:1)
是。以下查询具有相同的结果:
SELECT *
FROM table1
LEFT JOIN table2 ON table1.column1 = table2.column2
SELECT *
FROM table2
RIGHT JOIN table1 ON table1.column1 = table2.column2
答案 1 :(得分:0)
如果开发人员想要#t1中的所有记录并且只匹配来自#t2的记录,那么他可以将查询编写为 从#t1左连接#t2中选择*或从#t2中选择*右连接#t1
两者都是一样的。他们给出了相同的结果。
首先,不仅仅是这两种类型的连接。还有一个FULL OUTER JOIN,在这种情况下,结果中包含来自两侧的不匹配行。此外,还提供INNER JOIN(仅匹配行)和CROSS JOIN(笛卡尔积)。
在一个简单的查询中,例如此线程中的示例,可以使用LEFT或RIGHT并反转表以返回所需的结果。但是,随着向查询添加其他表,可能更容易添加具有不同连接类型的表,而不是重构整个查询以实现相同的语义。
答案 2 :(得分:0)
是的,唯一的区别是您编写连接表的顺序,您可以将LEFT重写为RIGHT,反之亦然。严格来说,我们不需要同时拥有两个连接。