我写了以下查询

 SELECT Registration.FName,RequestPooja.RitualId AS RitualId FROM RequestPooja INNER JOIN Registration
 ON RequestPooja.UserId = Registration.Id   WHERE Registration.Id=2
 UNION ALL
 SELECT Registration.FName,AaparaKarma.RitualId AS RitualId  FROM AaparaKarma INNER JOIN Registration
 ON AaparaKarma.UserId = Registration.Id
 WHERE Registration.Id=2


产生的结果是

FName   RitualId
Shreyas 24
Shreyas 37
Shreyas 37
Shreyas 37


现在我有一个仪式表

SELECT Rituals.Id,Rituals.Name FROM Rituals


这将输出为

 Id    Name
 24    ABC
 37    xyz


现在我想把这两个查询结合起来,我希望得到期望的结果

 FName  RitualId    Name
 Shreyas    24     ABC
 Shreyas    37     xyz
 Shreyas    37     xyz
 Shreyas    37     xyz


我应该使用联接还是内部查询来获得所需的结果?任何帮助表示赞赏。

最佳答案

检查一下。
使用Join,因为它可以为您提供更快的性能。

SELECT Registration.FName,RequestPooja.RitualId AS RitualId ,Rituals.Name
FROM RequestPooja
INNER JOIN Registration  ON RequestPooja.UserId = Registration.Id
INNER JOIN Rituals ON  Rituals.Id=RequestPooja.RitualId
WHERE Registration.Id=2

UNION ALL

 SELECT Registration.FName,AaparaKarma.RitualId AS RitualId  ,Rituals.Name
 FROM AaparaKarma
 INNER JOIN Registration  ON AaparaKarma.UserId = Registration.Id
 INNER JOIN Rituals ON  Rituals.Id=AaparaKarma.RitualId
 WHERE Registration.Id=2

09-25 17:04
查看更多