MySQL: поиск списка идентификаторов для множества отношений - PullRequest
0 голосов
/ 07 июня 2011

У меня есть три таблицы: keywords, queries и keywords_queries.keywords_queries имеет две колонки;одна ссылка на идентификатор ключевых слов, а другая ссылка на идентификатор запросов.Если у меня есть идентификатор запроса и список ключевых слов, с которыми я хочу связать его, каков наиболее эффективный способ найти идентификаторы ключевых слов, которые у меня есть, и вставить их в таблицу keywords_queries?Очевидно, я мог бы сделать большой запрос SELECT и использовать результаты для построения запроса INSERT, но есть ли способ сделать это в одном запросе?Также ключевые слова, которые я ищу, гарантированно будут в таблице ключевых слов.

Ответы [ 2 ]

1 голос
/ 07 июня 2011

Не тестировалось:

INSERT INTO keywords_queries (keywordid, queryid) VALUES (
    SELECT myQueryid, keywords.primaryid
    FROM keywords
    WHERE keywords.description IN ('a key','another key','and so on')
  )
1 голос
/ 07 июня 2011
INSERT INTO keywords_queries
    SELECT query.id, keyword.id
      FROM keywords, queries
     WHERE keywords.id in (???)
       AND queries.id = ?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...