Skip to content

Instantly share code, notes, and snippets.

@robbinhan
Created December 2, 2014 03:01
Show Gist options
  • Save robbinhan/c39a47227a4ed8523ef4 to your computer and use it in GitHub Desktop.
Save robbinhan/c39a47227a4ed8523ef4 to your computer and use it in GitHub Desktop.

#Mysql Join

内连接

  • 内连接就是计算结果集的交集 SELECT * FROM table_a, table_b WHERE table_a.id = table_b.id ##左右外部连接(内连)
  • 左外部连接是计算左表全部数据以及和右表有交集的数据 SELECT * FROM table_a LEFT OUTER JOIN table_b ON table_a.id = table_b.id
  • 右外部连接是计算右表全部数据以及和左表有交集的数据 SELECT * FROM table_a RIGHT OUTER JOIN table_b ON table_a.id = table_b.id ##左右外部连接不内连
  • 只计算左表排除和右表交集后的数据(右表结果集为null的数据剔除SELECT * FROM table_a LEFT OUTER JOIN table_b ON table_a.id = table_b.id WHERE table_b.id IS null
  • 只计算右表排除和左表交集后的数据(左表结果集为null的数据剔除SELECT * FROM table_a RIGHT OUTER JOIN table_b ON table_a.id = table_b.id WHERE table_a.id IS null ##全外连接
  • 计算左右表结果集的交集以外的数据 SELECT * FROM table_a LEFT OUTER JOIN table_b ON table_a.id = table_b.id WHERE table_b.id IS null UNION SELECT * FROM table_a RIGHT OUTER JOIN table_b ON table_a.id = table_b.id WHERE table_a.id IS null ##全外内连接
  • 计算结果集的并集 SELECT * FROM table_a LEFT OUTER JOIN table_b ON table_a.id = table_b.id UNION SELECT * FROM table_a RIGHT OUTER JOIN table_b ON table_a.id = table_b.id

详细内容参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment