我有一个包含以下列的表(tblEntities): ID(标识) 意义(VARCHAR) START_DATE(日期时间) STOP_DATE(DateTime,允许空值)
我想要添加到此表中的一长串值。该列表是通过查询另一个表(tblOther)获得的:
SELECT ITEMNAME
FROM tblOther
GROUP BY ITEMNAME
因此,对于上述查询生成的每个项目,我想:
我怎样才能做到这一点?是从列表中使用WHERE IN还是我需要创建一些函数来循环。
感谢您的帮助,
答案 0 :(得分:4)
你可以使用这个查询,
INSERT INTO tblEntities (Meaning, Start_Date, Stop_Date)
SELECT DISTINCT(ItemName), '1900-01-01', getdate()
FROM tblOther
WHERE tblOther NOT IN (SELECT DISTINCT(Meaning) FROM tblEntities)
或者对于更优化的查询,您可以使用LEFT JOIN
INSERT INTO tblEntities (Meaning, Start_Date, Stop_Date)
SELECT DISTINCT(ItemName), '1900-01-01', getdate()
FROM tblOther O
LEFT JOIN tblEntities E ON E.Meaning = O.ItemName
WHERE O.ItemName IS NULL