0
我有三个表与用户不同的记录组,MySQL查询获得计数结果和
User
username | realname | date
evn-az-3ju john 11/2012 03:09:40 p.m.
jwyvm_rdyt steve 12/2012 03:09:40 p.m.
bsMIAtWkhi mahesh 01/2013 03:09:40 p.m.
zrObzh4um0 santa 01/2013 03:09:40 p.m.
WyVm_rDYt grolsch 11/2012 03:09:40 p.m.
offline
username | messageID | message
jwyvm_rdyt 54 <message to="jwyvm_rdyt" id="t4Wa4-291" type="chat" from="evn-az-3ju"><body>test1</body><thread>1a327531-5a1c-4d6b-8b66-1209cdabb77d</thread></message>
jwyvm_rdyt 78 <message to="jwyvm_rdyt" id="t4Wa4-290" type="chat" from="evn-az-3ju"><body>Happy birthday</body><thread>1a327531-5a1c-4d6b-8b66-1209cdabb77d</thread></message>
evn-az-3ju 89 <message to="evn-az-3ju" id="t4Wa4-290" type="chat" from="evn-az-3ju"><body>Happy birthday</body><thread>1a327531-5a1c-4d6b-8b66-1209cdabb77d</thread></message>
zrObzh4um0 98 <message to="zrObzh4um0" id="t4Wa4-290" type="chat" from="evn-az-3ju"><body>Happy birthday</body><thread>1a327531-5a1c-4d6b-8b66-1209cdabb77d</thread></message>
WyVm_rDYt 45 <message to="WyVm_rDYt" id="t4Wa4-290" type="chat" from="evn-az-3ju"><body>Happy birthday</body><thread>1a327531-5a1c-4d6b-8b66-1209cdabb77d</thread></message>
roster
username | jid | date
jwyvm_rdyt evn-az-3ju 11/2012 03:09:40 p.m.
jwyvm_rdyt zrObzh4um0 12/2012 03:09:40 p.m.
jwyvm_rdyt bsMIAtWkhi 01/2013 03:09:40 p.m.
zrObzh4um0 WyVm_rDYt 01/2013 03:09:40 p.m.
WyVm_rDYt zrObzh4um0 11/2012 03:09:40 p.m.
这些是我想要得到这样设置表,
username | realname | count
evn-az-3ju john 2
zrObzh4um0 santa 0
bsMIAtWkhi mahesh 0
我想知道所有用户名为'jwyvm_rdyt'的花名册jid以及他们的真实姓名和邮件数量,如果该邮件包含任何花名册jid。像'evn-az-3ju'在第54和78信件中,所以计数2为该花名册jid。
任何帮助将不胜感激。
一般建议:_请_标准化您的'离线'表中的数据。就目前而言,我们必须找到一种方法来提取消息中的进出方,这可能只能通过自定义MySQL函数完成。 –
您可以尝试将消息字段解释为xml,并使用'ExtractValue()'函数从xml中获取值。然而,我不清楚你真的在追求什么。 – Shadow
@TimBiegeleisen感谢您回复..抱歉,我无法正常化数据库。我正在使用第三方数据库,我无法对数据库结构进行任何更改。 – user3588408