2017-05-24 22 views
0

使用Wmflabs的「Quarry」(https://quarry.wmflabs.org/)。從兩個wikipedias中選擇較大的文章

據我所知這是MySQL。

如何從德文wiki中選擇所有大小比文章大的文章?

這是我使用的代碼。我需要de_len,但我不知道如何得到它。

USE enwiki_p; 

SELECT 
     page_title en_title, 
     page_len en_len, 
     ll.ll_title as de_title 
FROM page 
JOIN langlinks ll 
    ON ll_from = page_id 
WHERE page_namespace = 0 
GROUP BY page_id 
HAVING max(CASE ll_lang WHEN 'de' THEN 1 ELSE 0 END) = 0 
LIMIT 10 
+0

你能解釋一下你試過的東西以及你到底在哪裏被卡住了嗎? – Tgr

回答

1

你需要從兩個數據庫以最小的三個表工作從兩個維基,加上關係相關中介環節得到正確文章corresponing(頁)的頁面大小,有一個良好的比較。 解決方案是這樣的:

SELECT 
     enp.page_title as en_title, 
     enp.page_len as en_len, 
     dep.page_title as de_title, 
     dep.page_len as de_len   
FROM enwiki_p.page enp 
JOIN enwiki_p.langlinks enll 
    ON enll.ll_from = enp.page_id and ll_lang="de" 
JOIN dewiki_p.page dep 
    ON enll.ll_title = REPLACE(dep.page_title, '_', ' ') 
WHERE enp.page_namespace = 0 and enp.page_is_redirect = 0 
    AND dep.page_namespace = 0 and dep.page_is_redirect = 0 
GROUP BY enp.page_id 
HAVING dep.page_len > enp.page_len 
ORDER BY dep.page_len DESC 
LIMIT 100