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

请求编写SQL查询:关联表A与表B并按指定条件输出数据

SQL关联查询实现:匹配两表交集+B表特定前缀记录

数据表内容

Table A

NAME     SUR        SUB
Rakesh   sharma    Maths
Arti     Agrwal    English
Arti     Sharma     English
yash     gupta     hindi
umir    abdul      Science

Table B

NAME     SUR        SUB
Rakesh   sharma    Maths
Arti     Agrwal    English
Arti     Sharma     English
yash     gupta     hindi
umir    abdul      Science
ramesh   agrahari   science 
piyush   jain        english 
priyam    tiwari     maths

期望输出

NAME     SUR        SUB
Rakesh   sharma    Maths
Arti     Agrwal    English
Arti     Sharma     English
yash     gupta     hindi
umir    abdul      Science
ramesh   agrahari   science

需求说明

  • 关联Table A和Table B
  • 保留两表中(NAME, SUR, SUB)完全一致的所有记录
  • 额外保留Table B中SUR字段以agr开头的记录(哪怕该记录不在Table A里)
  • 剔除Table B中既不在Table A、也不符合SUR LIKE 'agr%'的记录

可行SQL语句

SELECT DISTINCT b.NAME, b.SUR, b.SUB
FROM tableB b
LEFT JOIN tableA a 
  ON b.NAME = a.NAME 
  AND b.SUR = a.SUR 
  AND b.SUB = a.SUB
WHERE a.NAME IS NOT NULL 
   OR b.SUR LIKE 'agr%';

逻辑说明

  • 用LEFT JOIN关联两张表,以Table B为基础,这样能拿到B的所有记录并匹配A中对应的数据
  • WHERE条件分两部分:
    1. a.NAME IS NOT NULL:筛选出B中在A有对应匹配的记录(也就是两表的交集)
    2. OR b.SUR LIKE 'agr%':单独保留B中姓氏前缀符合要求的记录,不管A里有没有
  • 加DISTINCT是为了防止关联后出现重复行(比如A中有重复匹配的情况,示例里没有,但加上更稳妥)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 08:43:15