2016-12-08 10 views
-1

私は2つのテーブルを主キーで結合しようとしていますが、さらに1つのテーブルの選択カウントを追加しています。私は今、私が働いていないされて Bのカウント(*)を追加したい内部結合とansiの組み合わせ

Select a.ram as ram1, b.ram as ram2 from a,b 

を試してみました。

Select 
(Select count(*) from b inner join a on a.ram=b.ram as numberbids), 
A.ram as ram1, b.ram as ram2 from a,b; 

私には正しい列が与えられていますが、ラムとの関係ではなく、合計bのすべての入札がカウントされます。

誰でも手助けできますか? おかげ

私が得た: 表:

ram 
x 
y 

表B:

z 
ram 
bids 

私が欲しい:

ram1 ram2 numberofbids 

を私はこれが役に立てば幸い? I SQL

+2

ヒント: '登録しよう'。 'GROUP BY'。 –

+1

@ Hornlui2いくつかのサンプルデータを投稿できますか? –

+0

混乱するところでは。内部ジョインはANSI SQLです。 – jarlh

答えて

0

に非常に新しいです、これを試してください:あなたがINNER JOINを行うにはしたくない場合は

select a.ram,b.ram,count(*) as numberbids 
from b inner join a on a.xy=b.xy 
group by a.ram,b.ram 

を、あなたは外積をしたい、その後CROSS JOINを使用します。

select a.ram,b.ram,count(*) as numberbids 
from b cross join a 
group by a.ram,b.ram 
+0

問題は、a.ramとb.ramの出力は同じですが、実際は異なっているはずです。私のSelect a.ramをram1、b.ramをram2とし、biはa.ramとb.ramの出力を右にしますが、カウントとの関係でそれを設定しません。 – Hornlui2

+0

@ Hornlui2私は 'xy'を推測しますFK。したがって、結合を 'a.xy = b.xy'に変更してください。私は私の答えを更新しました。 –

+0

いいえ、ramはFKです。 xy istはミスリーディングであり、それを変更しました – Hornlui2

関連する問題