mysql - Replace the id's with name using single query -
select team_with.participant1,team_with.participant2,team_with.participant3 event,team_with team_with.for_event_no=event.event_no , event.event_no=4 , team_with.participant1=9 or team_with.participant2=9 or team_with.participant3=9;
i have written particular query, , obtained required id's in row. not able modify query such that, in place of these id's, names connected id's displayed.
the student_detatil
table consists of pk(sam_id)
, attribute name
.
ids displayed present query fks connected student_detail.sam_id.
.
it seems bad design multiply columns storing different participants. consider creating separate row each participant , storing them in table. joining logic easier.
also, please use explicit join
syntax - makes query clearer , easier understand separating join logic conditions data retrieval.
remember operator and
has precedence on or
, event.event_no = 4
not apply each participant condition. believe mistake, 1 judge.
as query itself, apply or
conditions join, or join student_detail table thrice.
select s1.name, s2.name, s3.name 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 e.event_no = 4 , ( t.participant1=9 or t.participant2=9 or t.participant3=9 );
Comments
Post a Comment