2014-01-08 21 views
0

我有三个表:玩家,统计和团队。如何连接2个不返回单值的suqueries? MySQL

**Player Table** **Team Table** 
----------------- ---------------- 
id Name  Age id Team Ratio 
----------------- ---------------- 
1 Player1 15  1 Team1 10 
2 Player2 20  2 Team2 5 
3 Player3 40  3 Team3 40 


**Stats Table** 
----------------------------- 
TName Column Value A B 
----------------------------- 
Player Age  Young 10 30 
Player Age  Mature 30 50 
Player Age  Old 50 70 
Team Ratio Good 20 40 
Team Ratio Medium 8 20 
Team Ratio Bad  0 8 

我必须写一些成员函数,它会告诉我结果谁该组是老模糊查询:

select function(Player.age, Stats.A, Stats.B) from Player join Stats where TName = 'Player' 

另一项任务是编写查询,这将告诉我谁拥有不良率:

select function(Team.ratio, Stats.A, Stats.B) from Team join Stats where TName = 'Team' 

问题是我需要在一张桌子上显示这个结果。我试图子查询select (first_query),(second_query),但我得到了错误Subquery returns more than 1 row

编辑

我没有粘贴在这里我的表,但我做的是简单的版本。正因为如此,结果可能是无效的:

我:

**function(Player.age, Stats.A, Stats.B)** 
------------------------------------------ 
0.22222 
0.44444 
1 

**function(Team.ratio, Stats.A, Stats.B)** 
------------------------------------------ 
0.52 
0.1 
0 

但我想有:

|**function(Player...) | function(Team...)**| 
| ----------------------------------------| 
| 0.22222   | 0.52   | 
| 0.44444   | 0.1    | 
| 1     | 1    | 
+0

请编辑您的问题以显示您想要的结果集样本。 –

+0

但0.22222和0.52之间的相关性是多少? – verhie

+0

你可以给这两个子查询一个自动递增值吗?然后你可以加入。 – verhie

回答

0

实际的答案是的vahidverhie意见相结合,这是它的样子:

select pl,te from 
(select function(Player.age, Stats.A, Stats.B), id from Player join Stats where TName = 'Player') as pl 
join 
(select function(Team.ratio, Stats.A, Stats.B), id from Team join Stats where TName = 'Team') as te 
on pl.id = te.id 

感谢您的帮助。

0

也许这个工作!

select * from (first_query) , (second_query) 
+1

你能澄清“也许”吗? –

+0

这个问题是不明确的,如果每个表中有一个结果,那么答案是正确的。 – vahid