mysql - 在mysql中俱乐部两个查询

标签 mysql sql

我编写了以下查询

 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

关于mysql - 在mysql中俱乐部两个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43360594/

相关文章:

php - 删除日期等于到期日期的 mysql 行

php - 显示计数百分比并计算两个 bool 值

php - 根据行号查询多个SlideIn函数

php - 变量和字符串显然不匹配

php - 执行查询以将数据从一个表复制到另一个表

MySQL错误: key specification without a key length

mysql - 使用 Doctrine 查询生成器执行联接查询

php - 如何使用选择查询的结果更新一行的多个 mysql 列?

sql - 查询以省略整个组,该组具有一个属性中具有特定值的记录

mysql - SQL从数据库中选择具有最大值的行并按2列分组