Я выполняю запрос ajax, используя таблицу начальной загрузки jQuery... Используя следующий запрос для извлечения списка веб-сайтов:
SELECT *
FROM websites
WHERE (name LIKE '%xx%' OR url LIKE '%xx%' OR country LIKE '%xx%')
ORDER BY id desc
LIMIT 0,10
Мне нужно иметь возможность сортировать веб-сайты по количеству статей, которые каждый сайт имеет в таблице, называемой статьями (включая предложение 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",
Также обратите внимание, что мне нужно получить ограниченное количество сайтов за раз, но результат должен быть отсортирован в соответствии со всеми строками, присутствующими в таблице.
Любая помощь будет оценена по достоинству.
Я не знаю, как построить требуемый запрос.
Попробуй это:
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
SHOW CREATE TABLE [table]
для каждой задействованной таблицы и пример данных в виде таблицы данных ascii, но лучше всего предоставить sqlfiddle.com или db-fiddle.com ... Также таблица данных ascii с ожидаемым результат также удобен .. Таким образом, мы можем лучше помочь вам