我写了以下查询
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