小编fou*_*shw的帖子

Sequelize ORM中连接表的条件

我希望通过sequelize ORM获得这样的查询:

SELECT "A".*,      
FROM "A" 
LEFT OUTER JOIN "B" ON "A"."bId" = "B"."id"
LEFT OUTER JOIN "C" ON "A"."cId" = "C"."id"
WHERE ("B"."userId" = '100'
       OR "C"."userId" = '100')
Run Code Online (Sandbox Code Playgroud)

问题是sequelise不让我在where子句中引用"B"或"C"表.以下代码

A.findAll({
    include: [{
        model: B,
        where: {
            userId: 100
        },
        required: false

    }, {
        model: C,
        where: {
            userId: 100
        },
        required: false
    }]
] 
Run Code Online (Sandbox Code Playgroud)

给我

SELECT "A".*,      
FROM "A" 
LEFT OUTER JOIN "B" ON "A"."bId" = "B"."id" AND "B"."userId" = 100
LEFT OUTER JOIN "C" ON "A"."cId" = …
Run Code Online (Sandbox Code Playgroud)

javascript sql postgresql orm sequelize.js

26
推荐指数
2
解决办法
1万
查看次数

是否可以在 postgresql 9.5 中从 WITH 查询插入冲突更新?

我正在尝试从 CTE 插入(或更新冲突)行,但正在努力为其找到正确的语法。我插入的表格看起来像这样(为了清楚起见简化了)

        Column        |           Type           |                            Modifiers
----------------------+--------------------------+------------------------------------------------------------------
 id                   | integer                  | not null default nextval('"QuestionStatistic_id_seq"'::regclass)
 questionId           | integer                  |
 count                | integer                  | not null default 0
Indexes:
    "QuestionStatistic_pkey" PRIMARY KEY, btree (id)
    "QuestionStatistic_questionId_key" UNIQUE CONSTRAINT, btree ("questionId")
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

with "Statistic" as (
   select "questionId", "count" from "SomeTable"
)
INSERT INTO "QuestionStatistic" ("questionId", "count") SELECT "questionId", "count" FROM "Statistics" 
ON CONFLICT ("questionId") DO UPDATE SET "count" = "Statistics"."count"
Run Code Online (Sandbox Code Playgroud)

这使我ERROR: missing FROM-clause entry for table "Statistics"的SET …

sql postgresql with-statement common-table-expression postgresql-9.5

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