2016-01-06 74 views
0

我正在使用sequalize ORM爲我的項目來處理SQL查詢。但我已經使用簡單的查詢現在我想將此複雜的SQL原始查詢轉換爲sequalize ORM。使用子查詢和情況Sequalize查詢然後語句

SELECT 
    u.uid 
FROM 
    users u 
WHERE 
    u.uid NOT IN(
     SELECT 
DISTINCT 
      CASE 
     WHEN uid = 3 THEN 
      blocked_uid 
     WHEN uid <> 3 THEN 
      uid 
     END AS 'uid' 
     FROM 
      user_block 
     WHERE 
      `status` = 'ACTIVE' 
     AND(
      (uid IN(4, 5) AND blocked_uid = 3) 
      OR(uid = 3 AND blocked_uid IN(4, 5)) 
     ) 
    ) 
AND u.uid IN(4, 5) 

回答

0

可以使用查詢功能,並綁定參數,或在WHERE /使用替代的值IN子句,按照文檔http://docs.sequelizejs.com/en/latest/docs/raw-queries/#replacements

例如:

sequelize.query('SELECT * FROM projects WHERE status = ?', 
{ replacements: ['active'], type: sequelize.QueryTypes.SELECT 
}).then(function(projects) { 
    console.log(projects) 
}) 
+0

它沒有奏效,幫我出我之情況 –