2016-08-23 8 views
0

問題があること(SQL)方法connentと2台の間で何かを得るために

TableAの

(`manufacturerID`, `company_name`, `address`, `city`, `state`, `post_code`, `area_code`, `phone_number`) 

('AA04', 'Ken', '6000 16th Ave N', 'San Diego', 'CA', '92101', '213', '981-8745'), 

('AA05', 'Lenar', '1230 9th Ave N', 'Baltimore', 'MD', '21202', '301', '321-0987'); 

TableBのおもちゃの製品はケンによって製造されているどのように多くの

(`productID`, `product_name`, `price`, `sale_price`, `in_stock`, `on_order`, `categoryID`, `manufacturerID`) 

('CT200', 'China Puppy', 15, 13.5, 20, 40, 4, 'AA04'), 

('CT201', 'Wooden Puppy', 18, 14.5, 15, 25, 4, 'AA04'), 

('CT202', 'Tanjore Doll', 17, 13.5, 20, 40, 2, 'AA01'), 

それは私の答え

SELECT COUNT(`manufacturerID`) 
FROM `toyproducts` 
WHERE `manufacturerID` = 'AA04' 

ですが、正解は何ですか?

+2

私は、この質問に対する答えに 'JOIN'を見ることを期待しています。 –

+0

@ a_horse_with_no_name、どのDBMSを使用していますか? – Ash

+0

phpmyadmin私はすでに回答を得ました –

答えて

0

あなたはcompany_nameKenここですべての製品を取得するためにINNER JOINを使用する必要があります。

SELECT COUNT(p.manufacturerID) 
FROM TableA m JOIN toyproducts p 
ON m.manufacturerID = p.manufacturerID 
WHERE m.company_name = 'Ken' 
+0

ありがとうたくさんの しかし、そのSQLコードのm、pの意味は SQLに新しい私は愚かな質問を申し訳ありませんについてごめんなさい –

+0

@ChakyinChowそれは範囲変数いくつかの関係(またはSQLの用語では、いくつかのテーブルの行のセット)のタプルの。 – onedaywhen

+0

@ChakyinChow **非常にシンプルな英語**では、テーブルのニックネームがあるので、完全なテーブル名を書く必要はありません。 **技術的には、テーブルのスコープエイリアスにあります。 – Shaharyar

1

あなたは自然に使用してテーブルを接続するために参加することができます。 2つのテーブルを同じ名前で接続できる共通の列として、自然結合を使用できます。一般的に、結合条件付きの内部結合が機能します。

select count(manufacturerID) FROM TableA NATURAL JOIN TableB where company_name='Ken' 

内部結合は自然結合よりも読みやすいですが。

0

SQLにこれを書き込む方法はたくさんあります。

SELECT COUNT(manufacturerID) AS tally 
    FROM toyproducts 
WHERE manufacturerID IN (SELECT manufacturerID 
          FROM TableA 
          WHERE company_name = 'Ken'); 
関連する問題