我需要一個MySQL查詢的幫助。MySQL查詢,有兩個連接表的COUNT和SUM
我有兩個表格,一個表格是backlinks
列表,is_homepage
(布爾)標誌。第二張表是所有backlinks
,link_found
(布爾)標誌和url_count
列的domains
列表,它是與每個域關聯的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
表中的每個條目。我想我可能需要一個更多的子查詢來合併返回的結果,但我不確定這是否正確。有沒有人看到我在做什麼錯了?謝謝!
編輯:
我遇到的問題是,如果在返回鏈接表,則其計算多次不止一個主頁。我只需要計算一次域名。
你應該張貼您的查詢解決的問題作爲回答,然後接受它。 – Taryn 2013-04-29 15:26:24
好的。它說我必須等待2天才能接受我自己的答案,所以我會在本週晚些時候完成。 – RachelC 2013-04-29 15:59:43