INNER JOIN 和 LEFT SEMI JOIN 的区别

新手上路,请多包涵

INNER JOINLEFT SEMI JOIN 有什么区别?

在下面的场景中,为什么我会得到两个不同的结果?

INNER JOIN 结果集要大得多。有人可以解释吗?我试图在 table_1 中获取仅出现在 table_2 中的名称。

 SELECT name
FROM table_1 a
    INNER JOIN table_2 b ON a.name=b.name

SELECT name
FROM table_1 a
    LEFT SEMI JOIN table_2 b ON (a.name=b.name)

原文由 user3023355 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

Semi Joining Left with Right 给你保留在 Left 如果你想加入 Right 的行

Left table:
KEY:  1, 2, 3
VAL1: a, b, c

Right table:
KEY:  2, 3, 4
VAL2: d, e, f

# Semi join:
KEY:  2, 3
VAL1: b, c

# Actual inner join
KEY:  2, 3
VAL1: b, c
VAL2: d, e

原文由 User12547645 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进