2017-03-22 10 views
-1

DBにdbl1_profiletypeとdbl1_usersという2つのテーブルがあります。 dbl1_profiletypeで2つの異なるテーブルから合計値を取得するMySQLとオーダー

私は、「ID」と「名前」

id__name 
3___red 
5___blue 
6___white 
7___green 
8___brown 

そして、私は、「ユーザーID」と「プロファイル」、「プロファイル」値の列を持っているdbl1_users内の列を持っていますdbl1_profiletypeテーブルの "id"値と同じです。私が表示したい何

dbl1_users

下の画像の中にそのように一つのテーブルである:私は必要なもの、だから、

TOTAL_MEMBERS

によってメンバーの合計数とのリストを返すことですprofiletypeは、より多くのメンバーを持つprofiletypeと、最後にメンバー数の少ないprofiletypeによって順序付けられます。

SELECT name, COUNT(profile) 

FROM dbl1_profiletype, dbl1_users 

GROUP BY profile 

しかし、それは仕事をdoesntの: は、私はそのような名前とCOUNT(プロファイル)を選択してみました。

そして私も試してみました:

SELECT name, COUNT(profile) 

FROM dbl1_profiletypes, dbl1_users 

GROUP BY profile 

に成功事例のなし。

私はmysqlのnoobですが、それは達成するのが簡単かもしれないと思っていますが、それは現時点で私の理解を超えています。

助けを歓迎します。

+0

どのように2つの試みが異なっていますか? –

+0

[スクリーンショットではなく]書式付きテキストとしてデータを投稿してください(http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking -a-question/285557#285557)。また、参加条件なしでテーブルに参加しています – Aleksej

+0

私の間違い申し訳ありません。 もう1つは、結合構文を使用することでした。しかし、私が言ったように、私はmysqlのnoobです。 – legolax

答えて

1

これは私があなたから提供された情報を思い付いたものです。 JOIN条件が不足していると思います。

SELECT DBL1_PROFILETYPE.NAME MEMBERS 
    , COUNT(*) TOTAL 
FROM DBL1_USERS 
    JOIN DBL1_PROFILETYPE 
     ON DBL1_USERS.PROFILETYPE = DBL1_PROFILETYPE.ID 
GROUP BY DBL1_PROFILETYPE.NAME 
+0

それはそれです!唯一のことは、注文が正しくないということです。私は最高値を最初に、低い値を最後に必要とします。自分の投稿に表示される画像のように。赤4、緑2、青2、茶1、白0。 – legolax

+0

オクラ、それをやる方法を考え出しました。総DESCによる注文。 – legolax

関連する問題