我正在使用jQuery bootstrap表执行ajax请求...使用以下查询来获取网站列表:
SELECT *
FROM websites
WHERE (name LIKE '%xx%' OR url LIKE '%xx%' OR country LIKE '%xx%')
ORDER BY id desc
LIMIT 0,10
我需要能够按照每个网站在asc或desc中的文章(包括WHERE子句)中所需的文章数量对网站进行排序。我可以使用以下查询来计算:
SELECT *
FROM articles
WHERE website_url='$url'
AND DATE(date_inserted) = CURRENT_DATE
AND is_valid='1'
SELECT *
FROM articles
WHERE website_url='$url'
AND is_valid='1'
两个表都有一个可用于匹配的公共字段:在网站表中,它被称为“url”,在文章表中,它被称为“website_url”
另请注意,我需要一次获取有限数量的网站,但结果应根据表格中的所有行进行排序。
任何帮助将不胜感激。
我对如何构建所需的查询毫无头绪。
答案 0 :(得分:0)
试试这个:
SELECT w.*
FROM websites w
LEFT OUTER JOIN (SELECT website_url, COUNT(*) as num_articles
FROM articles
WHERE is_valid='1'
GROUP BY website_url) a
ON a.website_url = w.url
WHERE (w.name LIKE '%xx%' OR w.url LIKE '%xx%' OR w.country LIKE '%xx%')
ORDER BY a.num_articles DESC
LIMIT 0,10