0

2 つのテーブルを持つ mysql db があります。

データベース名

name | Level
------------
bob    4
john   3
andy   2
dave   1

デシベルデータ

entry | user
------------
dfds    bob
hdes    bob
sers    john
iuid    dave
yyuy    john

各ユーザーが作成したエントリの数をカウントし、レベルも表示するカウントを実行しようとしています。点灯すると次のようになります。

count(*) | user | Level
-----------------------
2         bob     4
2         john    3
1         dave    1

左結合と個別結合を使用しようとしましたが、ロジックを理解できるようです。助けていただければ幸いです

4

1 に答える 1

4

INNER JOIN2 つのテーブルに両方が存在するレコードのみを表示したいので、基本的に を使用してテーブルを結合する必要があります。COUNT()インスタンスの数をカウントするには、集計関数とGROUP BY句を使用する必要があります。

SELECT  COUNT(*) TotalCount,
        a.Name,
        a.Level
FROM    names a
        INNER JOIN data b
            ON a.Name = b.user
GROUP   BY a.Name, a.Level

結合についてさらに詳しく知りたい場合は、以下のリンクにアクセスしてください。

出力

╔════════════╦══════╦═══════╗
║ TOTALCOUNT ║ NAME ║ LEVEL ║
╠════════════╬══════╬═══════╣
║          2 ║ bob  ║     4 ║
║          2 ║ john ║     3 ║
║          1 ║ dave ║     1 ║
╚════════════╩══════╩═══════╝
于 2013-04-25T12:54:12.107 に答える