2012-09-04 27 views
0

我有三張表,我已經加入..但我必須展示他們的方式有點難以理解。我試圖將它們分組,並沒有得到想要的結果。分組SQL表

Sports_Name 

Id | Name 
--------- 
1  Football 
2  Cricket 
3  Hockey 
4  Tenis 


Teams 

Id | Sport_Id | Team_Name 
---------------------------- 
101  1   Manchester United 
103  2   Australia 
104  2   India 
109  1   Real Madrid 
110  3   New Zeland 


Player_Name 

Id | Team_Id | Player_Name 
------------------------------ 
1  101   Rooney 
2  104   Tendulkar 
3  103   Ponting 
4  109   Ronaldo 
5  101   Van Persie 
6  110   Simond 

我需要顯示以下方式這一信息..

**Football**  
Manchester United -Rooney 
Manchester United -Van Persie 
Real Madrid -Ronaldo 

**Cricket** 
India-Tendulkar 
Australia-Ponting 

**Hockey** 
New Zeland -Simond 

and something similar for tenis 

看到這張照片的細節

enter image description here

回答

0

這是你想要的嗎?

SELECT sports_name.name, teams.team_name, player_name.player_name FROM player_name 
JOIN 
    teams ON 
player_name.team_ID = teams.ID 
JOIN 
    sports_name on 
sports_name.id = teams.sport_id 
order by sports_name.name, team_name 

這得到所有的數據,以便那麼你只需要使用你的表現層使用sports.name爲組頭。

這將產生

名TEAM_NAME PLAYER_NAME
澳大利亞板球龐廷
板球印度德家
足球曼聯魯尼
足球曼聯RVP
足球皇馬羅納爾多
曲棍球NZ西蒙德

+0

我需要把它放在一個網格上..像棒球和球隊和球員在..wish我可以張貼圖像,但我需要賺取10點..有點廢話! –

+0

你可以發佈一個鏈接到圖像分享網站 - 在評論中。 –

+0

http://www.flickr.com/photos/[email protected]/7929508974/in/photostream –

0

試試這個:

SELECT T.TEAM_NAME+' - '+ P.PLAYER_NAME as 'FOOTBALL' 
FROM TEAMS T JOIN PLAYER_NAME P 
ON  T.ID=P.TEAM_ID 
JOIN SPORTS_NAME S 
ON  T.SPORT_ID=S.ID 
WHERE S.NAME='FOOTBALL' 

更改where子句「蟋蟀」,「曲棍球」,以獲得其他結果

0

基本的查詢會是這樣的:

SELECT  s.Name, t.Name, p.Player_Name 
FROM  Player_Name  p 
INNER JOIN Teams  t 
ON  t.Id = p.Team_id 
INNER JOIN Sports_Name s 
ON  s.Id = t.Sport_Id 

然後,如果你想顯示的結果就像你描述它,我的猜測是使用a cursor。使用parameterized procedure可將WHERE子句添加到查詢中,以按照運動名稱篩選結果。