有人能告诉我如何在PostgreSQL中转换下面的Oracle语句吗?Postgres不能将表锁在外部连接中。
SELECT
TB1.ID AS USER_ID,
TB1.USER_NAME AS USER_NAME,
TB1.BIRTHDATE AS BIRTHDATE ,
TB2.AGE AS AGE,
TB3.GENDER AS GENDER ,
TB4.SUBJECT AS SUBJECT ,
FROM
TABLE1 AS TB1
LEFT JOIN TABLE2 AS TB2 ON
TB1.ID= TB2.ID
LEF
我在Redshift中有一个UPDATE语句,我想使用LEFT方法来识别第二个表中不存在的记录。该语句继续返回“多次指定的表名”错误。我知道我可以使用不同的方法,比如NOT和一个子查询,但是我想学习如何使用左联接方法在PostgreSQL中调整这个脚本。提前谢谢你。
UPDATE A
SET A.column_Name = 'Y'
FROM tbl_A A
LEFT JOIN tbl_B B
ON A.Mathcing_Column_Name = B.Matching_Column_Name
WHERE B.Matching_Column_Name is NULL
有没有人能帮我把这个积木转换成Knex? SELECT d.id, d.title, u.update_id, u."date"
FROM documents d
LEFT JOIN
-- JOIN "documents" against the most recent update per document_id
(
SELECT recent.document_id, id AS update_id, recent."date"
FROM updates
INNER JOIN
(SELECT document_id, MAX("da
下面的PostgreSQL查询有什么问题?
UPDATE project_project SET project_project.create_date = assignments.start_date
FROM project_project
LEFT JOIN account_analytic_account ON account_analytic_account.id = project_project.analytic_account_id
LEFT JOIN assignments ON assignments.accounts_ref = account_analytic_a
我正在尝试将以下Oracle查询转换为PostgreSQL:
MERGE into feepay.TRPT_W2_REPORTS TRPT1
USING(
WITH RWS AS
(SELECT PROG.BINCLIENT, TRPT.PUT_DIRECTORY
FROM feepay.program2 PROG
INNER JOIN feepay.TRPT_W2_PROGRAMS TRPT
ON (PROG.BINCLIENT = TRPT.BINCLIENT OR PROG.ISSUER_ID = TRPT.ISSUER_ID))
S
我在SQL Server中有以下查询: UPDATE
result
SET
result.IndxRent = idx.IndxRent
FROM
#resultRcPositionActiveBenchDay AS result
LEFT JOIN @TableIndxRent AS idx ON result.IndxId = idx.IndxId
AND result.ActiveDate = idx.IndxDate; 我需要在PostgreSQL中使用相同的值,但它会用相同的值(NULL)更新所有行。 在这里使用朋友的建议,是行不通的: UPDATE
如何编写用于更新具有两个剩馀联接的表的查询。下面是MSSQL中的一个查询,我想将其转换为postgresql。请帮帮忙。
Update T1 Set
T1.Amount = (T1.Amount - T2.Disc) + ((DT1.N_Amount)/2)
From @Before T1
Left Join @Before T2 On T1.ID = T2.ID
Left Join @DiscTable DT1 On T1.PurchID = DT1.Purch_ID
我有几张桌子,比如t1,t2,t3。我需要在postgresql中实现类似的东西。
select * from (t1 , t2) left join t3
where t1.some_column = t3.some_column;
但是postgresql抱怨
错误:语法错误在",“SQL状态: 42601字符: 77
我可以知道如何使用两个不同的表进行更新。在我的例子中,从表cust_invoice_index更新acc_doclink。但是,在doclink中,我想使用sum(amount)更新。此外,如果为null,则求和(Sum)将为0。
我使用了基于堆栈溢出中询问的其他人的这些查询,但仍然不能这样做。我正在使用postgresql。希望你们能帮我。谢谢。
1:
UPDATE cust_invoice_index as invoice
LEFT JOIN (select tgt_docid,sum(amount) as sum_amount from acc_doclink where tgt_do
我想知道"left outer join“和"union all”之间最好和最快的解决方案是什么。数据库是一个PostgreSQL。
使用UNION ALL查询:
SELECT * FROM element, user WHERE elm_usr_id = usr_id
UNION ALL
SELECT * FROM element WHERE elm_usr_id ISNULL;
使用左外部联接的查询:
SELECT * FROM element LEFT OUTER JOIN user ON elm_usr_id = usr_id;
环境:
hibernate-实体管理器:4.3.6.Final
PostgreSQL 9.3.5
我执行当前的JPQL查询
select distinct entity
from Incidence entity
left join treat(entity.road as Road) as road
where entity.road is not null and lower(road.nomenclature) like :value
查看日志文件,这将为PostgreSQL生成以下查询:
select
distinct
....
....
from public
在PostgreSQL + Postgis中,我可以运行下面的sql,它返回那些相同的点。我试图找到那些不同的点,所以我可以将其嵌入到插入查询中,以添加任何更新点。那么我如何让这个top做与ST_EQUALS相反的事情呢?我更喜欢空间查询解决方案。 SELECT
points_old.geom as points_old,
points_update.geom as points_update
FROM public.points_old
INNER JOIN public.points_update
ON ST_EQUALS(points_old.geom, points_up
在MySQL中,可以这样做:
update
table_a A
inner join
table_b B
on
A.field_five = B.field_five
inner join
table_c C
on
B.field_one = C.field_one and A.field_two = C.field_two
set A.field_three = C.field_four
我尝试在PostgreSQL中构建如下相同的查询:
update table_a A
set A.field_three = C.field
例如,假设您有表A、B和C,其中
A LEFT JOIN B JOIN C
将产生不同于
A LEFT JOIN (B JOIN C)
假设您创建了一个视图BC,其中该视图定义为B JOIN C。
是查询
A LEFT JOIN BC
保证等同于A LEFT JOIN (B JOIN C)
我已经用PostgreSQL 9.3尝试过了,发现它确实是这样的。然而,我想知道这是不是规范中规定的。我还想知道是否所有的SQL实现都是这样的。
(编辑:也许更有用的方式来陈述我的最后一个问题是:有谁知道有任何数据库实现不能以这种方式工作,或者根据经验知道它们中的大多数都是这样的?)
我对此进行了广泛的研究,似乎找不到我需要的答案。
我熟悉Rails事务,但在本例中,事务会执行多个查询,我不想这样做。
在单个查询中,如何用唯一值更新多行上的同一列?
例如:
update_hash = {1: 'Bandits on the High Road', 2: 'Broccoli: The Menace'}
Books.where(<id_is_in_update_hash_keys>).each do |b|
matching_hash_key = b.id
new_title = update_hash[:matching_
为什么我的PostgreSQL解析器会返回
ERROR: syntax error at or near ")"
LINE 1: ... FROM continent LEFT JOIN (country INNER JOIN city) sw ON sw...
在以下SQL查询中,试图列出所有大陆及其首都人口超过300万的国家的数目:
SELECT continent.Name, COUNT(country.Name)
FROM continent LEFT JOIN (country INNER JOIN city) sw
ON sw.country.Area = con
我在Postgresql中有以下查询:
SELECT mq.nombre,sa.nombre,COUNT(DISTINCT(ae.numero_serie)),SUM(im.fin-im.inicio),MIN(pz.fecha_inicio)
FROM item_metraje AS im LEFT JOIN articulo_especificado AS ae ON (im.id_articulo_especificado = ae.id)
LEFT JOIN articulo AS a ON (ae.id_articulo = a.id)
我正在使用postgresql 14,除了来自不同表的列之外,我还试图从表中返回整个记录。问题是,我不想把所有的标题都写在唱片里。我试着使用这里的指南线,但我得到了不同的错误。有人能告诉我我做错了什么吗?
CREATE OR REPLACE FUNCTION public.get_license_by_id(license_id_ integer)
RETURNS TABLE(rec tbl_licenses, template_name character varying, company_name character varying)
LANGUAGE 'plpgs
我试图在一个选择查询中将我的主表加入到PostgreSQL中的一些子表中。我得到了一个语法错误,我有一种感觉,我正在犯一个可怕的错误或做一些事情是不允许的。守则:
Select
id,
length,
other_stuff
from my_table tbl1
Left join
(
Select
id,
height
from my_table2 tbl2) tbl2 using (id)
left join
-- I get syntax error here
(
With a as (select id from some_table),
b as (Select value
我是PostgreSQL新手,正在尝试从SQL Server转换查询。
我有一个表Users,其中包括列bUsrActive、bUsrAdmin和sUsrClientCode。如果不存在具有相同sUsrClientCode的另一个用户,其中bUsrAdmin = true且bUsrActive = true,我希望更新用户并设置bUsrActive = false。
在SQL Server中,我有这样的查询
UPDATE u SET u.bUsrActive = 0
FROM Users u
LEFT JOIN Users u2 ON u.sUsrClientCode = u2.sUsrCli
我是PostgreSQL中的新手,我想知道是否可以将number从表tbc中作为左侧join 'pa' || number中表名的一部分使用。因此,例如,如果数字是456887,我希望离开连接表pa456887。就像这样:
SELECT tdc.cpa, substring(tdc.ku,'[0-9]+') AS number, paTab.vym
FROM public."table_data_C" AS tdc
LEFT JOIN concat('pa' || number) AS paTab ON (paTab.cpa =
SELECT table1.field1, table2.field2
FROM table1
LEFT JOIN table2 ON table1.field1, table2.field1
GROUP BY table1.field1 MySQL:✅好吧!? PostgreSQL:❌您必须将所有选择字段放入Group By!?中 如何在PostgreSQL中创建一个只有一个字段的Group By?
我在postgresql11中有一个表,其中有一个userId作为列。而且它不是表中的主键。我需要在表上执行以下update语句。
update entity set name='xxxx' where userId = 'yyy。
userId处于where状态,但我不知道是否应该为userId创建一个索引。它会提高性能吗?如果是,如何在update语句中指定索引?
当我想在我的postgresql中计数数据时,我遇到了问题。
下面是我的问题。
SELECT COUNT (distinct on (a.userid) a.userid, b.name, a.checktime
FROM checkinout a
LEFT JOIN userinfo b
ON b.userid = a.userid
WHERE a.checktime >= '2017-12-28 06:15:00'
AND a.checktime <= '2017-12-28 07:45:00')
我在“on”处或接近“on”处
我有以下查询
SELECT e.topicShortName, d.catalogFileID, e.topicID
FROM catalog_topics a
LEFT JOIN catalog_files_join b ON a.catalogID = b.foreignKey
LEFT JOIN catalog_files_join c ON c.foreignKey = b.catalogFileID
LEFT JOIN catalog_files d ON d.catalogFileID = b.catalogFileID
LEFT JOIN catalog_lu_topics e
我需要一个postgresql查询,返回业务的id。
快速表设置:
企业包含0或多张卡片,卡片包含0或多个区段,区段包含0或多个产品,产品包含0或多个标签。
问题所在
我需要的查询是针对以下情况:用户传递与产品相关的标记ids列表。结果应该包含业务(ids),其中包括满足的产品,所有给定的标记ids都是。
我创建了一个部分工作的查询,因为它在至少一个标记id匹配时返回业务id。
select businesses.id from businesses
left join cards on cards.id_business = businesses.id left join sections