我需要一个MySQL查询有点帮助。
我有两个表一个表的列表, backlinks
与is_homepage
(布尔)标记。 第二个表是列表domains
对所有的backlinks
,一个被link_found
(布尔)标志,以及一个url_count
列这是在的行数backlinks
与每个域相关联的表。
需要注意的是, domain_id
列是外键域表id
列。 下面有一些示例数据。
反向链接
id domain_id is_homepage page_href
1 1 1 http://ablog.wordpress.com/
2 1 0 http://ablog.wordpress.com/contact/
3 1 0 http://ablog.wordpress.com/archives/
4 2 1 http://www.somewhere.org/
5 2 0 http://www.somewhere.org/page=3
6 3 1 http://www.great-fun-site.com/
7 3 0 http://www.great-fun-site.com/index.html
8 4 0 http://red.blgspot.com/page=7
9 4 0 http://blue.blgspot.com/page=9
域
id url_count link_found domain_name
1 3 1 wordpress.com
2 2 0 somewhere.org
3 2 1 great-fun-site.com
4 2 1 blgspot.com
进出口寻找从以上数据得到的结果将是: 计数= 2,总= 5。
林试图从域表(计数),然后总和行数url_count
从域表(总)WHERE link_found
为1,凡在反向链接表中的链接之一is_homepage
为1。
下面是我想与之合作的查询。
SELECT SUM(1) AS count, SUM(`url_count`) total
FROM `domains` AS domain
LEFT JOIN `backlinks` AS link ON link.domain_id = domain.id
WHERE domain.id IN (
SELECT DISTINCT(bl.domain_id)
FROM `backlinks` AS bl
WHERE bl.tablekey_id = 11
AND bl.is_homepage = 1
)
AND domain.link_found = 1
AND link.is_homepage = 1
GROUP BY `domain`.`id`
该查询的问题是,它返回一个排在每个条目domains
表。 我想我可能需要多一个子查询加起来返回的结果,但我不知道这是正确的。 有谁看到我做错了什么? 谢谢!
编辑:
我遇到的问题是,如果在返回链接表,则其计算多次不止一个主页。 我只需要一次计算各个领域。