MySQL выбрать запрос - PullRequest
       4

MySQL выбрать запрос

1 голос
/ 16 июля 2011

У меня есть 2 таблицы: interviews & interview_keywords.

Интервью содержит 5 отсортированных ключевых слов. Мне нужен список интервью с указанными ключевыми словами в правильных позициях отсортированного списка. Это то, что у меня так далеко, что не работает:

   SELECT i.id, 
          i.title
     FROM interviews AS i 
LEFT JOIN interview_keywords AS ik ON i.id = ik.interview_id 
    WHERE i.cat_id = 1 
      AND ( (ik.keyword_id = 39 AND ik.sort = 1) 
        AND (ik.keyword_id = 33 AND ik.sort = 2) 
        AND (ik.keyword_id = 51 AND ik.sort = 3) 
        AND (ik.keyword_id = 96 AND ik.sort = 4) 
        AND (ik.keyword_id = 97 AND ik.sort = 5)) 

1 Ответ

3 голосов
/ 16 июля 2011
SELECT i.id, i.title
FROM interviews i
INNER JOIN interview_keywords ik1
    ON ik1.interview.id = i.id
    AND ik.keyword_id = 39
    AND ik1.sort = 1
INNER JOIN interview_keywords ik2
    ON ik2.interview.id = i.id
    AND ik2.keyword_id = 33
    AND ik2.sort = 2
INNER JOIN interview_keywords ik3
    ON ik3.interview.id = i.id
    AND ik3.keyword_id = 51
    AND ik3.sort = 3
INNER JOIN interview_keywords ik4
    ON ik4.interview.id = i.id
    AND ik4.keyword_id = 96
    AND ik4.sort = 4
INNER JOIN interview_keywords ik5
    ON ik5.interview.id = i.id
    AND ik5.keyword_id = 97
    AND ik5.sort = 5
WHERE i.cat_id = 1 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...