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

SQL语法问题:根据教练姓氏查询其关联学员的姓名

正确SQL语句写法指导

针对你的需求,这里提供两种正确的SQL写法,同时说明括号使用的注意事项:

方法一:使用JOIN关联表(推荐)

这种方式可读性和性能更优,适合多表关联查询:

SELECT fs.`first name`, fs.`last name`
FROM fahrschueler fs
JOIN fahrlehrer fl ON fs.id_f = fl.id_f
WHERE fl.`last name` = 'Blechle';
  • 说明:通过JOIN将学员表(fahrschueler)和教练表(fahrlehrer)通过id_f字段关联,WHERE子句过滤出姓氏为Blechle的教练,最终返回其名下的学员姓名。字段名包含空格时,需要用反引号(MySQL)或双引号(部分数据库)包裹,避免语法错误。

方法二:使用子查询

如果用子查询实现,需要注意括号的使用和结果集数量:

单个教练匹配的情况

如果确定姓氏为Blechle的教练只有一位,可以用=:

SELECT `first name`, `last name`
FROM fahrschueler
WHERE id_f = (SELECT id_f FROM fahrlehrer WHERE `last name` = 'Blechle');

多个教练匹配的情况

如果可能有多位姓氏为Blechle的教练,需要用IN代替=,避免报错:

SELECT `first name`, `last name`
FROM fahrschueler
WHERE id_f IN (SELECT id_f FROM fahrlehrer WHERE `last name` = 'Blechle');
  • 说明:子查询的括号使用是正确的,但要根据子查询返回的结果数量选择匹配运算符,否则会出现"子查询返回多于一行"的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:42:39