У меня есть два запроса, чтобы получить связанные теги из базы данных MySQL, один работает, другой нет, мой вопрос: «почему?»
Проблема:
При выполнении первого запроса сервер mysql получает 100% загрузки процессора и должен быть перезапущен, чтобы снова работать.
Запрос 1 (не работает):
SELECT tags.*, COUNT(ct.company_id) AS count
FROM company2tag ct, tags
WHERE ct.company_id IN (
SELECT ct.company_id FROM company2tag ct
WHERE ct.tag_id = 18
GROUP BY ct.company_id
HAVING COUNT(ct.company_id) = 1
)
AND tags.id != 18
AND tags.id = ct.tag_id
GROUP BY ct.tag_id
ORDER BY count DESC
LIMIT 5;
Запрос 2 (работает):
SELECT tags.*, COUNT(ct.company_id) AS count
FROM company2tag ct, tags
WHERE ct.company_id IN (5864, 5870, 6140, 6221, 6268)
AND tags.id != 18
AND tags.id = ct.tag_id
GROUP BY ct.tag_id
ORDER BY count DESC
LIMIT 5;
Насколько я понимаю, два вышеупомянутых запроса полностью совпадают, единственное отличие состоит в том, что первый запрос извлекает свои "company_id" с помощью подвыбора.
Как это может произойти?