MySQL:查找多对多关系的id列表

时间:2011-06-07 00:36:51

标签: mysql many-to-many

我有三个表:keywordsquerieskeywords_querieskeywords_queries有两列;一个链接到关键字ID,另一个链接到查询ID。如果我有查询的ID和我想要链接到的关键字列表,那么查找我所拥有的关键字的id的最有效方法是什么,并将它们插入到keywords_queries表中?显然我可以做一个大的SELECT查询并使用结果来构建一个INSERT查询,但有一些方法可以在一个查询中执行它吗?我正在查找的关键字也保证在关键字表中。

2 个答案:

答案 0 :(得分:1)

INSERT INTO keywords_queries
    SELECT query.id, keyword.id
      FROM keywords, queries
     WHERE keywords.id in (???)
       AND queries.id = ?

答案 1 :(得分:1)

未经测试:

INSERT INTO keywords_queries (keywordid, queryid) VALUES (
    SELECT myQueryid, keywords.primaryid
    FROM keywords
    WHERE keywords.description IN ('a key','another key','and so on')
  )