使用单个查询将ID替换为名称

公斤
SELECT team_with.participant1,team_with.participant2,team_with.participant3 
 FROM event,team_with 
 WHERE team_with.for_event_no=event.event_no AND 
 event.event_no=4 AND 
 team_with.participant1=9 OR 
 team_with.participant2=9 OR 
 team_with.participant3=9;

我已经编写了特定的查询,并连续获得了所需的ID。我无法修改此查询,以致于无法显示这些ID,而是显示连接到该ID的名称。

student_detatil表由PK(sam_id)和属性组成name

当前查询显示的ID是连接到的FK student_detail.sam_id.

卡米尔(Kamil Gosciminski)

乘以存储不同参与者的列似乎是一个错误的设计。考虑为每个参与者创建一个单独的行,并将其存储在表中。您的加入逻辑也将更加容易。

另外,请使用显式JOIN语法-通过将联接逻辑与数据检索条件分开,可以使查询更清晰,更易于理解。

请记住,运算符AND的优先级高于OR,因此您的event.event_no = 4不适用于每个参与者条件。我相信这是一个错误,但是您是一个要判断的人。

至于查询本身,您可以将OR条件应用到联接中,或者简单地将student_detail表联接三次。

SELECT 
    s1.name,
    s2.name,
    s3.name
FROM 
    event e 
    INNER JOIN team_with t ON t.for_event_no = e.event_no
    LEFT JOIN student_detail s1 ON s1.sam_id = t.participant1
    LEFT JOIN student_detail s2 ON s2.sam_id = t.participant2
    LEFT JOIN student_detail s3 ON s3.sam_id = t.participant3
WHERE
    e.event_no = 4
    AND ( t.participant1=9 OR t.participant2=9 OR t.participant3=9 );

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

自动将ID替换为名称(Excel / Google文档)

尝试使用 CTE 将代码替换为名称

AWS Quicksight-使用外键将ID转换为名称

如何使用python将协议编号转换为名称?

如何使用LINQ将ResourceSet转换为名称列表?

如何使用java将协议号转换为名称?

将日期转换为名称

将值转换为名称SQL

将数字转换为名称

如何替换我知道开头和结尾的字符串中的单词,而不是整个单词?即:将ID#转换为名称

将显示从 ID 更改为名称

如何在熊猫中使用country_converter将国家代码转换为名称?

如何使用字典将这些整数元组列表转换为名称元组列表?

将linq结果转换为名称值对

无法将月份编号转换为名称

将<netinet / in.h>协议转换为名称?

如何将Windows ProductType转换为名称?

将python海龟图形数链转换为名称

R将列表转换:将值转换为名称,并将名称转换为值

使用熊猫将多个值替换为单个值

通过查询将 id 替换为组中的值

单个 PL/SQL 查询中的多个 regexp_replace,将字母替换为“A”,将数字替换为“1”

使用TypeScript将导入导出为名称空间

如何从多个文件中剪切一些文本,将其替换为名称等等?

使用循环和字典理解将客户的 id 替换为他们在装运字典中各自的名称

将嵌套双括号对替换为单个

将Midi音符编号转换为名称和八度

SQL - 将符号的列值转换为以符号作为名称和布尔类型的列

如何将图像序列转换为名称中具有不同位数的视频?