2014-01-08 5 views
0

У меня есть три таблицы: игрок, статистика и команда.Как подключить 2 запроса, которые не возвращают одно значение? 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

EDIT

Я не вставить сюда свои таблицы, но я сделал простую версию этого. Из-за того, что результаты не могут быть действительными:

я получил:

**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

Фактический ответ сочетание vahid и verhie комментариев, и вот как это выглядит:

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

 Смежные вопросы

  • Нет связанных вопросов^_^