我需要检索表中的所有行,其中2列组合都是不同的.因此,我希望所有在同一天没有任何其他销售的销售以相同的价格出售.基于日期和价格的唯一销售将更新为活动状态.
所以我在想:
UPDATE sales
SET status = 'ACTIVE'
WHERE id IN (SELECT DISTINCT (saleprice, saledate), id, count(id)
FROM sales
HAVING count = 1)
Run Code Online (Sandbox Code Playgroud)
但是我的大脑比那更远了.
我想更新的列leaf_category与TRUE其中的类别是不是一个父类.它作为一个select语句:
select
c1.id, c1.name, c1.slug, c1.level, c2.parent_id, c2.name, c2.slug, c2.level
from
catalog_category c1
left outer join
catalog_category c2 on
(c1.id = c2.parent_id)
where
c2.parent_id is null;
Run Code Online (Sandbox Code Playgroud)
但是,相应的UPDATE设置所有列TRUE.
update catalog_category
set leaf_category = True
from
catalog_category c1
left outer join
catalog_category c2 on
(c1.id = c2.parent_id)
where
c2.parent_id is null;
Run Code Online (Sandbox Code Playgroud)
是UPDATE这样的可能呢?
我正在从 mysql 到 postgres 进行对话。
我尝试使用连接表 EUTMPDFH T1 和 EUTMPTBLDT T2 更新表 EUTMPDFHDT T。
这是我在mysql中使用的代码。
UPDATE EUTMPDFHDT
SET NWCOLID=T2.NWCOLID
FROM EUTMPDFHDT T
INNER JOIN EUTMPDFH T1 ON T.DFHID = T1.DFHID AND T1.DFHTYP IN ('D','U','S','P','B')
INNER JOIN EUTMPTBLDT T2 ON T.COLID = T2.COLID
Run Code Online (Sandbox Code Playgroud)
在 postgres 中,我确实尝试在 PostgreSQL 中使用多个连接来遵循此UPDATE 语句
但无济于事,我无法解决它,因为更新语句不一样。
这是我在 postgres 中所做的:
UPDATE EUTMPDFHDT AS T
SET NWCOLID=T2.NWCOLID
FROM
EUTMPDFH T1
JOIN EUTMPTBLDT T2 ON T.COLID = T2.COLID
WHERE T.DFHID = T1.DFHID AND T1.DFHTYP IN ('D','U','S','P','B');
Run Code Online (Sandbox Code Playgroud)
这是我遇到的错误 …