私は、参照ユーザー(電子メールアドレスと日付列を含む)とユーザーのためのテーブルを持っています。テーブル参加のMySQL
私はトップリファラーを取得するために実行します。
SELECT count(r.Email) as count, r.Email
FROM refs r
WHERE r.referredOn > '2011-12-13'
GROUP BY email
ORDER BY count DESC
をしかし、私はそれがユーザテーブルに他のデータと表示するので、ユーザーテーブルでこれに参加したい、私は参加が働くだろうと思いました。左が参加becuase電子メールが誤って入力してもよいし、一部の人々は上記のクエリでrefs.Email
SELECT count(r.Email) as count, r.Email, u.*
FROM refs r LEFT JOIN users u ON u.email_primary = r.Email
WHERE r.referredOn > '2011-12-13'
GROUP BY email
ORDER BY count DESC
の下で最初の名前などを入れてカウントが正しくないですが、私は理由を知りません。
usersテーブルのエントリのないメールはnullとして表示されるので、ここでは左の結合をしたいと思います。 – Richard
はい。彼らが誰に属しているかをどのように知っていますか?あなたが次にできることは、誰にも属していないすべての電子メールを数えることです。また、あなたが言及しているように、人々がそこにメール以外の何かを入れているなら、彼らは決して何にもマッチしません。 – dash
私は分かりませんが、null値はユーザーテーブルにない名前または電子メールを入力した場合に意味があるようです。私たちのトップの紹介者がどのように見えるかをより良く理解しようとしています。 +1は役に立つリンクです。 – Richard