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

SQL查询时如何从同一表的同一列选取两个不同值同时展示

修改方案

你需要二次关联ciclista表匹配亲属信息,给两个不同的ciclista表设置别名区分骑行者本人和亲属即可实现需求,修改后的SQL如下:

SELECT parente_ciclista.nome AS 亲属姓名, ciclista.nome AS 骑行者姓名, ciclista.idc, local.nome_local, ciclista.idade
FROM ciclista
INNER JOIN local ON ciclista.idl_residencia = local.idl
INNER JOIN parente ON ciclista.idc = parente.idc_b
INNER JOIN ciclista parente_ciclista ON parente.ida_a = parente_ciclista.idc
WHERE ciclista.idade < 18
AND local.nome_local LIKE '%Covil%'
AND parente.tipo LIKE 'm%'

说明

  • 第二次关联的ciclista表别名设为parente_ciclista,通过parente.ida_a = parente_ciclista.idc匹配到对应亲属的记录,取出其nome字段就是你需要的亲属姓名
  • SELECT字段第一位设置为亲属姓名,符合你要把该字段放在查询结果最前面的要求
  • 原隐式表关联改为显式JOIN写法,逻辑更清晰,也可以避免漏写关联条件导致的笛卡尔集问题;如果需要保留没有匹配亲属的骑行者记录,可以将最后一个INNER JOIN改为LEFT JOIN

内容的提问来源于stack exchange,提问作者José Carrilho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:06:05