gpt4 book ai didi

mysql - SQL 查询按来自不同表的 count() 排序

转载 作者:行者123 更新时间:2023-11-29 17:47:37 26 4
gpt4 key购买 nike

我正在使用 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

我需要能够根据每个网站在一个称为文章(包括 WHERE 子句)的表中按要求以 asc 或 desc 的文章数量对网站进行排序。我可以使用以下查询获取计数:

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'

两个表都有一个可用于匹配的公共(public)字段:在网站表中,它称为“url”,在文章表中,它称为“website_url”

另请注意,我需要一次获取有限数量的网站,但结果应根据表中存在的所有行进行排序。

如有任何帮助,我们将不胜感激。

我不知道如何构建所需的查询。

Fiddle: https://www.db-fiddle.com/#&togetherjs=4UG71ov2Jz

最佳答案

试试这个:

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

关于mysql - SQL 查询按来自不同表的 count() 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49675969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com