Node.js - Sequelize.js verschachtelte Assoziationsüberprüfung in der äußeren Bedingung - undefined

8

Implementierung mit Sequelize-Version: "^ 4.15.0"

Ich versuche, eine Wo-Bedingung von der Ebene 2 nach unten zu den Assoziationen hinzuzufügen.

%Vor%

Ich habe die Methode müde:

%Vor%

Aber gibt den Fehler, dass model2_alias.model3_alias.id nicht definiert / nicht gefunden ist.

Das obige funktioniert, wenn es als '$model2_alias.id$': { [Op.in]: [1, 2, 3] } geschrieben wird, also muss die Syntax geschrieben werden, aber wie geht man eine Ebene tiefer.

Wenn die formed SQL-Anweisung in einem beliebigen MySQL-Management-Tool ausgeführt wird, ergibt dies ein korrektes Ergebnis, so dass die where -Bedingungen, die ich implementieren möchte, auch nicht falsch sind.

Irgendwelche Ideen, was mir hier fehlt oder das funktioniert nur für eine Ebene. Dann was für mehr Ebenen zu tun?

    
Kunal Dethe 12.02.2018, 07:54
quelle

3 Antworten

3

Sie können wo auf jeder Ebene hinzufügen -

%Vor%

Hoffe das hilft!

    
Rahul 01.03.2018 05:13
quelle
0

Ich nehme an, dass Ihr Code nicht funktioniert hat, weil Sie model1_id anstelle von id verwendet haben. Also sollte der Code

sein %Vor%

Auch als @Rahul erwähnt, können Sie wo direkt in Ihrem Include auch verwenden

%Vor%     
Tarun Lalwani 01.03.2018 07:42
quelle
0

Sie können es auch versuchen

%Vor%

z.B.

%Vor%

Über sub query bedeutet, dass Sie limit / offset + ( 1:m relation oder left join ) verwenden. Wenn Sie 1:1 relation haben, fügen Sie einfach required: true zu include hinzu und Sie erhalten inner join anstelle von left join und sequelize erstellen nicht sub query .

    
Dmytro Mysak 05.03.2018 18:05
quelle