You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL五种JOIN结果验证及全类型输出与解析请求

五种JOIN操作结果及解释

先明确两张表的结构和数据:

  • Table A(左表):

    idname
    1Pizza
    2Burger
    3Sandwich
    4Hotdog
  • Table B(右表):

    idfood
    2Burger
    3Sandwich
    5Sushi
    6Kebab

1. 内连接(INNER JOIN)

逻辑:只返回两张表中匹配连接条件(A.id = B.id)的行。
结果:

idnamefood
2BurgerBurger
3SandwichSandwich

解释:只有id=2和3在两张表中都存在,仅这两行被保留。


2. 左连接(LEFT JOIN / LEFT OUTER JOIN)

逻辑:保留左表所有行,右表匹配条件的行显示对应数据,不匹配的用NULL填充右表字段。
结果:

idnamefood
1PizzaNULL
2BurgerBurger
3SandwichSandwich
4HotdogNULL

验证你的答案:你给出的答案格式和内容均错误,正确结果如上,左连接会保留左表全部4行,其中id=1和4的右表字段为NULL。


3. 右连接(RIGHT JOIN / RIGHT OUTER JOIN)

逻辑:保留右表所有行,左表匹配条件的行显示对应数据,不匹配的用NULL填充左表字段。
结果:

idnamefood
2BurgerBurger
3SandwichSandwich
5NULLSushi
6NULLKebab

解释:右表的id=5和6在左表中没有匹配,左表的name字段用NULL填充。


4. 全外连接(FULL OUTER JOIN)

逻辑:保留两张表的所有行,匹配的行合并,不匹配的一侧用NULL填充对应字段。
结果:

idnamefood
1PizzaNULL
2BurgerBurger
3SandwichSandwich
4HotdogNULL
5NULLSushi
6NULLKebab

解释:左表和右表的所有行都被保留,无匹配的字段用NULL填充。注意:MySQL不原生支持FULL OUTER JOIN,需要用LEFT JOIN UNION RIGHT JOIN模拟。


5. 交叉连接(CROSS JOIN)

逻辑:返回两张表的笛卡尔积,即左表每一行和右表每一行组合,行数为左表行数×右表行数。
结果(共16行):

idnameidfood
1Pizza2Burger
1Pizza3Sandwich
1Pizza5Sushi
1Pizza6Kebab
2Burger2Burger
2Burger3Sandwich
2Burger5Sushi
2Burger6Kebab
3Sandwich2Burger
3Sandwich3Sandwich
3Sandwich5Sushi
3Sandwich6Kebab
4Hotdog2Burger
4Hotdog3Sandwich
4Hotdog5Sushi
4Hotdog6Kebab

解释:交叉连接无连接条件,直接生成所有可能的行组合。


内容的提问来源于stack exchange,提问作者frub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:26:23