Как объединить эти два запроса?

#php #mysql

#php #mysql

Вопрос:

 SELECT htpid AS parentid 
    FROM likehot WHERE htpid 
    IN (SELECT id FROM bultin WHERE  DATE  >= '1317108749') 
    GROUP BY htpid ORDER BY COUNT( htpid ) 
    DESC
  

выдача результата

 parentid
16060
16059
16058
16057
  

и другой запрос

 SELECT app_id,bultin.id,photo_album_id,entcmmnt_id,link_url,youtubeLink,
       link_image,id, mem_id, subj, body, bultin.date,parentid, 
       from_id, visible_to, image_link,post_via 
FROM bultin 
WHERE id IN ('16062','16059','16058','16057') 
ORDER BY FIELD('16062','16059','16058','16057') 
LIMIT 5
  

На самом деле я хотел ту же последовательность, что и в IN, поэтому я использовал FIELD operator

Пожалуйста, предложите спасибо

Комментарии:

1. @MarkByers, я хотел, чтобы они выполнялись в одном запросе..

2. Храбрецы выполняют запросы в одном

3. @clinisbut, у вас, ребята, есть ответ, пожалуйста..

Ответ №1:

Я не мог понять ваш вопрос.. Если вы можете, пожалуйста, объясните это лучше.. Я могу дать вам решение.. Хорошо, я хотел бы сказать, что вы не можете использовать более одного значения в первом запросе «ВЫБЕРИТЕ идентификатор ИЗ bultin, ГДЕ DATE> = ‘1317108749’)». И еще одна вещь: разве вы не используете значения в первом запросе следующим образом

ВЫБЕРИТЕ htpid В КАЧЕСТВЕ родительского идентификатора ИЗ likehot, ГДЕ htpid В (16062′,’16059′,’16058′,’16057′)

Комментарии:

1. Обычно htpid IN (16062','16059','16058','16057') результат появляется в первом списке.

Ответ №2:

Если я ничего не пропустил, это должно выполнить эту работу:

 SELECT b.app_id, b.id, b.photo_album_id, b.entcmmnt_id, b.link_url, b.youtubeLink,
    b.link_image, b.mem_id, b.subj, b.body, b.date, b.parentid,
    b.from_id, b.visible_to, b.image_link, b.post_via
FROM bultin AS b
JOIN (
    SELECT htpid, COUNT( htpid ) AS htpid_count
    FROM likehot
    GROUP BY htpid ORDER BY COUNT( htpid )
    DESC
) AS l ON l.htpid = b.id
WHERE DATE  >= '1317108749'
ORDER BY l.htpid_count
LIMIT 5
  

Дайте мне знать, если вам нужна более подробная информация об этом запросе.

Комментарии:

1. Я думаю, вам следует удалить ORDER BY COUNT( htpid ) из подзапроса.

2. Оригинал был GROUP BY htpid ORDER BY COUNT( htpid ) , вот почему оптимизированная версия, я думаю, должна быть упорядочена так в подзапросе, а затем также упорядочена по l.htpid_count в основном запросе