SQL:从两个参数列表中插入所有可能的对

时间:2017-11-08 14:12:54

标签: mysql sql

我在MySQL数据库中有一个表,它使用列item_id, tag_id来关联项和标记。我需要编写一个查询,它接收一个项目列表和一个标签列表,并将每个标签应用于每个项目。

我目前的实现如下:

INSERT INTO item_tag (item_id, tag_id) 
  (SELECT tag.tag_id, item.item_id FROM tag, item
  WHERE tag.tag_id in (:tags) 
   AND  item.item_id in (:items))

这是有效的,但它很笨拙且不合适,我查询tagitem表来获取我已经在参数中已有的值(我已经知道了)这一点是有效的ID,所以我真的不需要检查是否存在。)

有更清洁的方法吗?例如,我想到类似(伪代码):

SELECT * FROM all_values_in_a_column(:tags) 
JOIN all_values_in_a_column(:items) 

0 个答案:

没有答案