2016-04-16 13 views
-2

私は最も経験豊富なプレイヤーを表示したいと思います。まず、すべてのプレイヤーと経験値を表示してから試してみてください。その相続人は、以下のクエリは、両方のテーブルのコードとテーブルコードザッツクエリ自体SQL Join - クエリエラー

CREATE TABLE Player  
( 
    Player_ID INTEGER CONSTRAINT pk_player PRIMARY KEY,  
    Pname VARCHAR(60), 
    DOB VARCHAR(10),  
    Heightcm NUMBER(10),  
    Weightkg NUMBER(10),  
    Position VARCHAR(20),  
    Team_ID INTEGER CONSTRAINT fk_player REFERENCES Team(Team_ID) 
) 

CREATE TABLE PlayerCareer_Performance 
( 
    Player_Performance_ID INTEGER CONSTRAINT pk_PP PRIMARY KEY,  
    Player_ID INTEGER,  
    total_points NUMBER(10),  
    total_fouls NUMBER(10),  
    ExperiencePoints NUMBER(10),  
    CONSTRAINT fk_Pp FOREIGN KEY (Player_ID) REFERENCES Player(Player_ID) 
) 

です:

SELECT PLAYER.PLAYER_ID,PLAYER.PNAME,PLAYERCAREER_PERFORMANCE.EXPERIENCEPOINTS  
FROM PLAYER  
JOIN PLAYERCAREER_PERFOMANCE  
ON PLAYERPERFROMANCE.PLAYER_ID = PLAYER.PLAYER_ID; 

プレーヤーが黄色に下線が引かれ、それが「の残りの部分から切り離されていると言いグラフを結合する "

すべてのアイデア、誰ですか?私はそれのための修正を参照してください傾ける:(

答えて

0

インナーは(人気の需要を反映して更新)JOINを使用:

select p.player_id, p.pname, pcp.experiencepoiuts 
from Player p 
inner join PlayerCareer_Performance pcp on pcp.player_id = p.player_id 
+0

あなたは '内部結合を使用しますが、あなたのクエリは'内部結合 'を持たないと書いています:-) – Jcl

+0

申し訳ありません、私はSQLのデフォルト動作(ほとんどのエンジン)内部結合。 – yk11

+0

はい、内部結合を行う可能性が高くなりますが、回答の改ざんについては不思議に思っていました(それは間違っていません:-)) – Jcl

1

一見、あなたがテーブルPLAYERCAREER_PERFORMANCEに参加するが、と呼ばれるテーブルのフィールドに参加しています。PLAYERPERFROMANCE(原文のまま)はタイプミスということです

この:?

SELECT Player.Player_ID, Player.Pname, PlayerCareer_Performance.ExperiencePoints 
FROM Player 
JOIN PlayerCareer_Performance 
ON PlayerCareer_Performance.Player_ID = Player.Player_ID 

が正常に動作するようです(ただタイプミスを修正しました):check it at sqlfiddle

一般的な提案として、コードに一貫性を持たせてください...異なる列形式(例:ExperiencePointstotal_points)を使用しており、すべてのSQLクエリコードを大文字にしているため、読みにくく、

+1

+10個人的には、短いテーブルエイリアスがテーブル参照に割り当てられると、SQLを簡単に解読できます(プレイヤーは「p」、player career_performanceは「c」)。 (これは私の個人的な好みですが、実際に*必須*はありません。他のパターンはうまく使用されます) – spencer7593

+0

私は短いエイリアスも使用していますが、OPの回答を変更したくないあまりにも多く...ちょうどいくつかの "まともな"フォーマットを提供し、それがなければクエリが間違って見えないので、タイプミスを指摘したい:-)また、あなたは彼の "私はそれを修正する前に書式設定: – Jcl

+0

あなたは神!ありがとう、それはタイプミスでした:(私は本当にそれをやめて、はい、それを短くすることは良いアイデアになる、試してみて、最もExperincepointsのプレーヤーだけを表示するつもりなら、もし私が明日、男:) –