2017-08-31 5 views
0

私はDBAではありませんが、それでも問題を解決する方法を理解しようとしています。 私は、それぞれのクラスの動物のDBからのみカウントを取得しています。 複数の結合でそのクエリからカウントを取得した後、私はすべてのカウント(合計カウント列に記載されています) を取得しましたが、そのデータをタイプと説明を表す2つの列で表現したいと考えています。しかし、私はそれをする方法を得ることができません。 と同様に、私は手動ですべての数に対して行うようtype_of_animalとその説明を命名して、それらのカウントを表現したい各行を手動で表現したクエリのデータ数を表す方法は?

Type_of_animal|description       |total_count 
------------- |---------------------------------------|----------- 
Reptiles  |Reptiles are cold-blooded vertebrates | 5000 
Mammals  |People are mammals      | 80000 
Birds   |Any which have feathers    | 1000000 

として、これらのカウントを表示したい参加しているクエリから総カウントを取得しています。

1のクエリは、あなたは

SELECT count(catmang.category_id) AS 'Total Counts' 
FROM category catmang 
JOIN category_identifier catident ON catident.category_id = catmang.category_id 
WHERE category_id = 5 
+0

現在使用しているクエリを表示してください。あなたの質問にこれを編集して、コメントに入れないでください – RiggsFolly

+0

hmmm ...「FROM category catmang」のカテゴリは何を意味していますか? – Sablefoste

+0

カテゴリは、すべてのリレーショナルテーブルIDを持つテーブルです。カテゴリテーブルにマップされたカテゴリIDがあるため、すべての爬虫類を取得したいとします。 category_identifierはカテゴリーIDが5、ヘビ、トカゲなどのデータを持つテーブルです。これらは爬虫類であり、id 5でしか識別できませんが、爬虫類や哺乳類のようなコードを持つ表はありません。鳥と私私は私が持っているもので動作する必要がある任意のテーブルを追加することはできません。だからカテゴリ5のトータルカウントは爬虫類になるだろうと言及しなければならず、行の中で言及する必要がある:( – ami

答えて

0

意味ですかれる:(。おそらくcategory_identifierと* .TYPEと.DESCRIPTIONに交換)

SELECT category_identifier.*, COUNT(*) as total_count 
FROM category_identifier 
LEFT JOIN category using(category_id) 
GROUP BY category_identifier.category_id 

更新

元のポスターはしたくないので実際にデータベースにあるデータを使用して(データベース内にあるすべての利点を取り除く)、「仮想」テーブルを作成することはできますが、それはかなり冗長で面倒です。この参加を追加してください:

LEFT JOIN (
    SELECT 'Reptiles' as Type_of_animal, 
     'Reptiles are cold-blooded vertebrates' as description, 
     1 as category_id 
    UNION 
    SELECT 'Mammals' as Type_of_animal, 
     'Reptiles are cold-blooded vertebrates' as description, 
     2 as category_id 
    UNION 
    ....... 
) as texts USING(category_id) 

そして、選択では、texts.type_of_animal、texts.descriptionを使用してください。あなたはおそらくcategory_idsを変更する必要があります...

+0

いいえ、その爬虫類を言う行がないか、何か説明がある。 – ami

+0

@ami so ... how doあなたは知っていますか?IDと関連する記述とtype_of_analalsが書かれた紙を持っていますか?そうなら...それらをデータベースに入れて一緒に結合してください他はすべて不必要に複雑です。 ) – Jakumi

+0

はい私はあなたに同意します、より多くの愚かな要求の:)しかし、私は私の意見を置く前に、私はちょうどそこに任意のアイテムの数を取得中にDBに任意の方法があることを確認したい、私は上記の表で述べたそれに対してカウントします。 Type_of_animal | descriptionはハードコーディングされているか、カウントに対して何らかの方法で書き込まれます。 – ami

関連する問題