首页 > 解决方案 > 使用多个 Select 和 Join 语句将多个数据插入表中时出错

问题描述

我有以下将数据插入表的查询。

INSERT INTO linking (user, relaterd, type, changedate, changeuser, createdate, muser, id, common)
   SELECT map.user, mre.uuid,  'BALL',  TIMESTAMP '2019-11-03 00:00:00.000', 'system',  TIMESTAMP '2019-11-03 00:00:00.000',  'system',  uuid_generate_v4(), mre.uuid
   FROM (SELECT user FROM mapuser v JOIN mct m ON v.uid = m.groep) map
   JOIN (SELECT mr.uuid, mr.number FROM mre mr where mr.type = 'KCT') mre ON mre.number = substring(m.groep, 2, length(m.groep));

我希望语句填充“用户”、“相关”和“通用SELECT-JOIN”列。“ relatedrd ”和“ common ”列具有相同的值。其他列是常量。

当我执行这个查询时,我得到了ERROR MESSAGE :: missing FROM-clause entry for table "m"。就像它希望我对表“mct”使用 From 子句,我认为我不需要它,因为我正在 将它与mapuser表一起加入。

标签: sqlpostgresql

解决方案


m你外面没有桌子(SELECT user FROM mapuser v JOIN mct m ON v.uid = m.groep)

尝试用地图替换 m:

substring(map.groep, 2, length(map.groep))

在您的查询中,您只有mapFROM 子句中的表并mre与之连接。其他表的别名仅存在于子查询中。


推荐阅读