2013-07-05 48 views
0

我有以下两个查询连接两个查询使用连接mysql中

1)

SELECT `domains`.`name` , `pageviews`.`domain_id` , COUNT( `pageviews`.`domain_id`) 
FROM `pageviews` 
LEFT JOIN `domains` ON ( `domains`.`id` = `pageviews`.`domain_id` 
AND `domains`.`user_id` = '129') 
WHERE `pageviews`.`user_id` = '129' 
GROUP BY `pageviews`.`domain_id` 
ORDER BY COUNT( `pageviews`.`domain_id`) DESC 

2)

SELECT `domains`.`name` , `visitors`.`ip` , `visitors`.`domain_id` , COUNT( `visitors`.`domain_id`) 
FROM `visitors` 
LEFT JOIN `domains` ON ( `domains`.`id` = `visitors`.`domain_id` 
AND `domains`.`user_id` = '129') 
WHERE `visitors`.`user_id` = '129' 
GROUP BY `visitors`.`domain_id` 
ORDER BY COUNT( `visitors`.`domain_id`) DESC 

我想这些查询组合。 这是cakephp分页所必需的,因为我想在表格中显示数据并且想要对acc进行分类。访问者和综合浏览者,如果我想。 协会是1)域许多游客2)域有很大的浏览量

+1

'JOIN'或'UNION'? –

+0

使用连接不工会 – Garry

回答

1

具有试试这个:

SELECT 
    pv.name,pv.domain_id,pv.counter as page_visits, v.ip, v.counter as visits 
FROM (
    SELECT `domains`.`name` , `pageviews`.`domain_id` , COUNT( `pageviews`.`domain_id`) as counter 
    FROM `pageviews` 
    LEFT JOIN `domains` ON ( `domains`.`id` = `pageviews`.`domain_id` 
    AND `domains`.`user_id` = '129') 
    WHERE `pageviews`.`user_id` = '129' 
    GROUP BY `pageviews`.`domain_id` 
    ORDER BY COUNT( `pageviews`.`domain_id`) DESC 
) as pv 
LEFT JOIN (
    SELECT `domains`.`name` , `visitors`.`ip` , `visitors`.`domain_id` , COUNT( `visitors`.`domain_id`) as counter 
    FROM `visitors` 
    LEFT JOIN `domains` ON ( `domains`.`id` = `visitors`.`domain_id` 
    AND `domains`.`user_id` = '129') 
    WHERE `visitors`.`user_id` = '129' 
    GROUP BY `visitors`.`domain_id` 
    ORDER BY COUNT( `visitors`.`domain_id`) DESC 
) as v 
    ON pv.domain_id = v.domain_id 
+0

谢谢@Stephan ..这工作完美,因为我想.ta – Garry

+0

@gurpreetsingh:高兴我可以帮助:)欢呼 – Stephan

+0

我怎么可以在cakephp分页使用您的查询?我是cakephp新和不到很多这个..感谢 – Garry