2017-12-10 15 views
1

こんにちは皆!テーブルには3つの列( 'playerID'、 'teamID'、 'yearID')が含まれています他の列と同じ特性を持つ1つの列を選択

同じ年の列を1人のプレーヤーで取得したいだけです。あなたは次のようにコードを見ることができます:

Select playerID, teamID, yearID 
FROM `appearancessmall` 
WHERE (teamID IN 
(SELECT teamID from `appearancessmall` WHERE playerID = 'napolmi01') 
) AND 
(yearID IN (SELECT yearID from `appearancessmall` WHERE playerID = 
'napolmi01') 
) 

しかし、クエリの出力は同じteamIDかプレイヤー「napolmi01」と同じyearIDを持つ合計列で、私が欲しいのは、列が選択されるべきです同時に2つの要件を満たす。だからそれをどうやる?

+0

にそれを試してみてくださいJOINについての記事を読んでください – Strawberry

答えて

-1

2つのサブクエリを組み合わせると同時に、両方の列を比較してみてください:

SELECT 
    playerID 
, teamID 
, yearID 
FROM `appearancessmall` 
WHERE 
    (teamID,yearID) IN (
    SELECT teamID,yearID 
    FROM `appearancessmall` 
    WHERE playerID = 'napolmi01' 
    ) 
+0

ありがとうございました!私は実際に動作するコードをテストします。 –

0

試行は、次の例のようLEFT JOINを使用する

SELECT `et`.* FROM `test` `t` 
LEFT JOIN `test` `et` 
ON `t`.`teamID`=`et`.`teamID` AND `t`.`yearID`=`et`.`yearID` 
WHERE `t`.`playerID`='napolmi01'; 

SQL Fiddle

+0

別の方法からのあなたの答えをありがとう、私はそれをテストし、それは本当に良いですが、@ Used_By_すでに少し早いので、私は答えとしてその答えを取る、許してください、ところで、ありがとう! –

+0

@JacksonTom私のクエリは唯一の代替方法ではありません。この場合、結合を使用する方が適切です。とにかく歓声:) –

関連する問題