Php Mysql查询帮助-计算行数

Php Mysql查询帮助-计算行数,php,mysql,Php,Mysql,我有两个不同的表跟踪事件和链接 Trackingevent看起来像 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

我有两个不同的表跟踪事件和链接

Trackingevent看起来像

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
林克看起来像

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
我需要做的是,我需要数一数FACEBOOK上的所有份额 所有的分享都在推特上 还有所有的份额 和所有的共享站点登录 以及在以下情况之后不包含其余数据的所有COPNTEST_条目: 和电子邮件分享 然后以某种方式将它们与emailSub的数量合并为1 身份证的数量

所以我得到了一个类似于

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
我可以使用 按事件名称从trackingevent GROUP中选择eventName,COUNT* 但是我不知道如何在emailsubs=1的链接中获得ID的数量,以及竞争条目的数量:BLAH数据BLAH数据改变


我需要执行三种不同的sql查询并合并数据吗?或者我可以将它们组合成一个或多个类型吗?

这应该会给出使用前缀的每种类型的计数

SELECT LEFT(eventName,INSTR(CONCAT(eventName,':'),':')) as prefix, count(*)
FROM trackingevent
GROUP BY LEFT(eventName,INSTR(CONCAT(eventName,':'),':'))

如果这不是你想要的,你必须回答评论中的问题

哇,到底是谁认为这是一个好的DB设计?冒号分隔的值,而不是上帝禁止的“类型”列!尽管如此,被糟糕的设计压得喘不过气来,所以我将开始起草一份答复:PIt不是我的设计,很遗憾,是数据库管理员干的。不管我有多生气,显然,让我花50个小时修理它,然后让他们花2个小时修理它,花费会少一些。我们可以得到一些列名吗?id的引用是什么?在任何其他专栏上都没有你给我们的ID。。。你把它们组合起来是什么意思?我会反过来回答,把它们组合起来,我是说一个join语句或什么的。链接表的ID为| emailSub,其中有两个不同的表。列名是trackingevent的eventName和eventStamp,link的id和emailSub。@史蒂文:他问的是链接与trackingevent的关系如何在你发布的内容中并不明显,这是完全必要的。事实上,如果您可以对其中的每一个进行showcreatetable,然后发布它提供的模式输出,那就更好了。