“sql错误或缺少数据库(没有这样的列),但存在列为的表”

disho6za  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(365)

我有一个本地sqlite数据库,我把一些csv文件放在其中。
运行此查询时:

SELECT
      cc.codedname
    , cc.PreferredName
    , pr.IrdiPR
    , pr.identifier
    , pr.PreferredName
    , pr.datatype
    , pr.IrdiUN
    , un.PreferredName
    , restricted_values.IrdiCC
    , restricted_values.IrdiPR
    , restricted_values.IrdiVA
    , restricted_values.preferredname_va
    , pr.definition
--
FROM
    (cc
    INNER JOIN (pr
                INNER JOIN (cc_pr
                            LEFT JOIN restricted_values
                                   ON  (
                                   cc_pr.IrdiPR = restricted_values.IrdiPR
                                   AND cc_pr.IrdiCC = restricted_values.IrdiCC
                                   )
                            )
                ON pr.IdPR = cc_pr.IdPR
                )
   ON cc.IdCC = cc_pr.IdCC
   )
   LEFT JOIN un
   ON pr.IrdiUN = un.IrdiUN

我在dbeaver中得到这个错误:
[sqlite\u error]sql错误或缺少数据库(没有这样的列:限制的\u值。国际税务总局)
但是“restricted\u values”表确实存在,并且有一列名为“国际税务总局”?

2wnc66cl

2wnc66cl1#

写下每个 ON 它所属的联接之后的子句,并且不要过度使用括号,这会使代码更难阅读:

.....................................................................
FROM cc
INNER JOIN cc_pr ON cc.IdCC = cc_pr.IdCC
INNER JOIN pr ON pr.IdPR = cc_pr.IdPR
LEFT JOIN un ON pr.IrdiUN = un.IrdiUN
LEFT JOIN restricted_values ON cc_pr.IrdiPR = restricted_values.IrdiPR 
                           AND cc_pr.IrdiCC = restricted_values.IrdiCC

相关问题