Skip to content

ON 链接(JOIN)

  • INNER JOIN:只保留中间重叠部分
  • LEFT JOIN:左表全保留 + 匹配右表
  • RIGHT JOIN:右表全保留 + 匹配左表
  • FULL JOIN:两张表全部保留
  • CROSS JOIN:所有组合全排列

别名不是必须,但是一个好习惯。

ON 为 联结键

INNER JOIN / 内联结

sql
select g.id,g.brand,g.model,info.storage,info.power,info.architecture
from GPU as g
 INNER JOIN GPUInfo as info
  ON g.id = info.gpu_id;

内联结只会输出 满足条件 的结果。

比如 g 有,而 info 没有,就不会出现在 result 中。

OUTER JOIN / 外联结

sql
select g.id,g.brand,g.model,
       info.storage,info.power,info.architecture
from GPU as g
 LEFT OUTER JOIN GPUInfo as info
  ON g.id = info.gpu_id;

外联结需要指定 LEFT 或 RIGHT,为指定的表进行扩张。

CROSS JOIN / 交叉联结

sql
select g.id,g.brand,g.model,
       info.storage,info.power,info.architecture
from GPU as g
 CROSS JOIN GPUInfo as info;

没有 ON !

结果非常多