2015-08-13 4 views
0

Mysql Подробности:Выберите с помощью третьей таблицы по идентификатору

  • Таблица A (имя: должность): идентификатор
  • Таблица B (название: post_has_relate): POST_ID, Object_ID

Могу ли я получить сообщение в таблице A с тем же object_id, что post_id является const? Я пытаюсь написать с подзапросом. Могу ли я написать его с помощью join?

SELECT 
    p.sumary AS sumary, 
    p.source_link AS source_link, 
    p.source_name AS source_name, 
    p.created AS created, 
    p.id AS id, 
    p.slug AS slug 
FROM 
    post_has_relate AS pr 
LEFT JOIN post as p ON p.id = pr.post_id 
WHERE 
    pr.object_id IN (
     SELECT 
      post_has_relate.object_id AS object_id 
     FROM 
      post_has_relate 
     WHERE 
      post_has_relate.post_id = 1052 
    ) 
AND pr.post_id != 1052 
AND p. STATUS = 1 
GROUP BY 
    p.id 
ORDER BY 
    p.created DESC 
LIMIT 5 OFFSET 0 

ответ

0

Я думаю, что вы могли бы достичь того же результата с объединением:

SELECT 
    p.sumary AS sumary, 
    p.source_link AS source_link, 
    p.source_name AS source_name, 
    p.created AS created, 
    p.id AS id, 
    p.slug AS slug 
FROM 
    post_has_relate AS pr 
LEFT JOIN post as p ON p.id = pr.post_id 
JOIN post_has_relate AS pr2 
    ON pr2.object_id=pr.object_id AND pr2.post_id=1052 
WHERE 
    pr.post_id != 1052 
    AND p.STATUS = 1 
GROUP BY 
    p.id 
ORDER BY 
    p.created DESC 
LIMIT 5 OFFSET 0 
Смежные вопросы