相关疑难解决方法(0)

我如何(或可以)在多列上选择DISTINCT?

我需要检索表中的所有行,其中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)

但是我的大脑比那更远了.

sql postgresql distinct duplicates sql-update

382
推荐指数
4
解决办法
86万
查看次数

PostgreSQL:忽略左外部自连接的更新

我想更新的列leaf_categoryTRUE其中的类别是不是一个父类.它作为一个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这样的可能呢?

sql postgresql join sql-update

3
推荐指数
1
解决办法
5019
查看次数

具有多个连接到 PostgreSQL 中主表的 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)

这是我遇到的错误 …

sql postgresql inner-join sql-update

3
推荐指数
1
解决办法
3691
查看次数

标签 统计

postgresql ×3

sql ×3

sql-update ×3

distinct ×1

duplicates ×1

inner-join ×1

join ×1