从另一个表匹配分组

时间:2015-02-27 10:02:10

标签: mysql join group-by matching

我需要按client_id对流量列表(重定向)进行分组。

流量位于一个表格中(traffic_table) client_id和不同的客户端URL位于另一个表中。

我的问题是匹配需要是模糊/ LIKE,因为我没有连接选项。每个client_id可以有多个网址。客户端URL需要与流量表中的域列匹配,并具有某种LIKE。

我无法得到这个以显示正确的结果。

有人有想法吗?

示例数据:

Traffic_table:

    domain                     count

www.google.com/dasdasdas        45
google.com/2lkj24j              755
http://www.google.de/42dasdsa   74
www.bing.com/1321               65
http://www.bing.de/1321ds       74

Client_table:

client_id    url 

   1       google.com
   1       google.de 
   2       bing.com 
   2       bing.de

1 个答案:

答案 0 :(得分:0)

我希望我能正确理解您的问题,在我看来,您希望将所有通过客户端网址分组的流量计数相加。你可以轻松加入喜欢的表达方式:

 SELECT c.url,SUM(t.count) FROM client c JOIN traffic t ON t.domain LIKE CONCAT('%',c.url,'%') GROUP BY c.client_id

示例数据的结果:

The result with your sample data

// edit:SELECT c.client_id,SUM(...优于c.url