首页 > 解决方案 > mySQL Self Join - 内部连接或连接

问题描述

快速澄清。连接同一个表中的内容时,我必须始终将连接类型声明为 INNER 吗?

例如,

SELECT p1.country_code,
       p1.size AS size2010,
       p2.size AS size2015
FROM populations AS p1
  INNER JOIN populations AS p2
    ON  p1.country_code = p2.country_code;

(在此屏幕截图中显示的表格上)

是的

当我试图删除关键字 INNER 时,它是错误的。是因为SQL中不存在JOIN吗?

谢谢和欢呼。

标签: mysqlsqlinner-join

解决方案


您确实想要一个自我(内部)加入,但您缺少将每个表限制为特定年份的逻辑:

SELECT
    p1.country_code,
    p1.size AS size2010,
    p2.size AS size2015
FROM populations AS p1
INNER JOIN populations AS p2
    ON p1.country_code = p2.country_code
WHERE
    p1.year = 2010 AND
    p2.year = 2015;

推荐阅读