2016-05-18 10 views
0

こんにちは、私はこの2つのテーブルがあります。SQLテーブルを接続し、同じ列に値を比較する

Team: 
team_id 
team_name 
division 

とチームのデータの

Match: 
match_id 
match_date 
... 
Team_team_id 
Team_team_id1 

例:

(1, Anaheim, P) 
(2, Arizona, P) 
(3, Boston, S) 
(4, Buffalo, M) 
(5, Detroit, M) 

とマッチ:

(1, date, 1, 2) 
(2, date, 2, 3) 
(3, date, 5, 3) 

と結果はアナハイム(同じ部門のアリゾナと対戦する)でなければなりません

私は、同じ部門のチームに対してのみ試合をしたチームの名前だけをリストしたいと思います。 SQLとリレーショナル代数でどうすればいいですか?除算は文字の値のみです。ありがとうございます...

+1

サンプルデータと期待される結果を示してください。そして今あなたが持っているスキーマ/データの中でより多くのことをする必要があります。 –

+0

ようこそ!これは、あなたが書いたソフトウェアで問題があるかどうかを問うことができますが、「自分の宿題をする」や「自分の仕事をしない」サイトではありません。質問をするときには、あなたが書いたコードと、あなたが得ている特定のエラーまたはあなたのプログラムが生成した結果と、期待した結果の説明を含めるべきです。それがなければ、私たちがあなたを助けることはほとんどできません。あなたの質問を編集して、あなたがしたことを示して、コードにどんな問題があるか教えてください。再び、Stack Overflowへようこそ! –

答えて

2
SELECT t1.team_name AS team_name1, 
     t2.team_name AS team_name2 
FROM team t1 
     INNER JOIN match m 
     ON (t1.team_id = m.team_team_id) 
     INNER JOIN team t2 
     ON (t2.team_id = m.team_team_id1) 
WHERE t1.division = t2.division 
+0

これは私が探していたものです... – minho

+0

これは正解であることに興味があります - 最初の質問は単一のチーム名(Anaheimは唯一の正解)でしたが、このクエリ、チームの**ペア**を返します。また、元の質問は、他の部門のチームと対戦しても、たとえチームがその部門のチームと対戦したとしても、チーム(アリゾナ)を失格とする。この答えはそれをしません。しかし、OPは満足しています。 Go figure。 – mathguy

+0

@mathguyまず、この回答は、OPがサンプルデータで投稿を更新する前に投稿されました。タイムスタンプを確認してください。第2に、サンプルデータの場合、クエリーは「アナハイム(同じ部門のアリゾナと対戦する)」のみを出力します。今質問した質問の内容であるかどうかについて英語でセマンティクスを演奏したい場合は、**自分の**回答を投稿してもいいですか、またはあなたの直前にOPのコメントを受け入れることができます。 – MT0

関連する問題