gpt4 book ai didi

sql - PostgreSQL 查询不返回数据

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:01 25 4
gpt4 key购买 nike

我有 2 个表(tabl1tbl2),我想要一个连接 tbl2 的查询至 tbl1通过匹配其 col1idcol2id以便结果集包含 tbl1数据与 name tbl2 中的列.

以下查询不返回任何数据:

SELECT Date
,cast(tbl1.col1_id as varchar) AS "col1name"
,tbl2.name::varchar AS "tabl2name"
,tbl1.currency::money as "Avg currency"
,CASE WHEN rich IS NULL then 'Unknown'
ELSE 'True' END AS "bank"
,CAST(Ranking AS FLOAT) / 18 + 1 AS "Rich Ranking"
,tbl1.Reviews as "Reviews"
FROM tbl1
JOIN tbl2
ON tbl1.col1id = tbl2.col2id

tbl1.col1id包含类似 3,999,999 的数字

当我进行完全右连接时,我能够从 2 个单独的表中获取所有数据

我创建了一个新表,旁边有我想要的特定名称。

我创建了一个新表,其值与 3,999,999 完全匹配最后我没有得到任何匹配,所以我认为类型有问题,我一直在弄乱数据,但我被卡住了。

我猜这些值不是同一类型,所以我做了一些额外的工作,在其他地方和同一个查询中将它作为整数或 varchar 输入。但是返回的结果什么也没有,但没有产生错误,所以我认为这是我的类型错误。

最佳答案

如果您只想按照帖子中的描述进行操作,最好避免不必要的复杂性。以下是否返回任何内容?

SELECT tbl1.*, tbl2.name
FROM tbl1
JOIN tbl2
ON tbl1.col1id = tbl2.col2id;

如果没有任何结果,我会首先建议检查是否有任何匹配 tbl1.col1id 的 tbl2.col2id。您可以通过使用 LEFT JOIN 轻松地做到这一点(atm 通过使用 JOIN 您实际上是在使用 INNER JOIN)。然后,您的行集将包含 tbl1 中的所有行,并且如果无法进行连接,则 tbl2.name 中的值为空值。

除此之外,我会确保 tbl1.col1id 和 tbl2.col2id 的数据类型相同。

关于sql - PostgreSQL 查询不返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33270524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com