私はTrackingeventがMySQLのクエリのヘルプ - 行をカウント
eventName|eventStamp
SHARE_FACEBOOK|2011-01-20 14:05:40
SHARE_TWEET|2011-01-20 14:47:57
SHARE_FLICKR|2011-01-20 15:08:58
SHARE_STATION_LOGIN|2011-01-20 15:09:09
EMAIL_SHARE|2011-01-20 15:10:13
CONTEST_ENTRY:BLAH DATA|2011-01-20 15:10:13
CONTEST_ENTRY:BLAH DATA|2011-01-20 15:10:13
とリンク
id|emailSub
6|1
7|0
8|1
9|0
のように見え、私は何をする必要があることは私であるように見えるtrackingeventとリンク
2つの異なるテーブルを持っていますSHARE_FACEBOOKをすべてカウントする必要があります。 と、すべてのSHARE_TWEET と、すべてのSHARE_FLICKR と、すべてのSHARE_STATION _login 何とか:) とEMAIL_SHARE とした後、残りのデータがなければ、すべてCOPNTEST_ENTRIES は(emailSubの量(1に等しい) とidの量とそれらを組み合わせます。
だから私は、私はeventNameの BY trackingevent
グループから SELECT eventNameの、COUNT(*)を使用しての最初の部分を取得することができ、ソートの
EMAIL_SHARE 77
SHARE_FLICKR 9
SHARE_FACEBOOK 105
SHARE_STATION_LOGIN 223
SHARE_TWEET 18
# of ID's
# of emailsub=1
CONTEST_ENTERIES 550
のように返された配列を取得しかし、どのようにして、私は混乱していますリンクのIDの数をemailsubs = 1とCONTEST_ENTRY:BLAH DATAの数(データの変更)にします。
3つの異なるSQLクエリを実行してデータを結合する必要がありますか?あるいは、私は何とかそれらを1つに組み合わせることができますか?
を求めていたものでない場合は、コメントでの質問に答える必要があります誰地球上でそれは良いDBデザインになると思った?コロンで区切られた値の代わりに(神は禁じられている) 'タイプ'の列!誰もが、悪いデザインに抱かれているのは楽しいものではないので、私はアスワーを作成し始めるでしょう:P – tobyodavies
悲しいことに、私のデザインではない、データベースの管理者がそれをしました。とにかく私が明らかになって怒っているかどうかにかかわらず、私はそれを修正するのに50時間を費やしてから2時間を過ごさせるほうがコストがかかりません。 – Steven
いくつかの列名を取得できますか?idの参照は何ですか?あなたが他の列に私たちに与えたIDはありません...そして、どういうわけか「それらを組み合わせる」ということはどういう意味ですか? – tobyodavies