2017-04-12 39 views
0

我写了下面的查询在MySQL俱乐部两个查询

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 

,这将给输出as

Id Name 
24 ABC 
37 xyz 

现在我想俱乐部这两个查询,我想作为

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

期望的结果应该使用加入或内部查询,以获得预期的效果?任何帮助赞赏。

回答

0

选中此项。 使用加入,因为它为您提供更快的性能。

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