शामिल हैं मुझे परिणामों को सीमित करते समय और संबंधित मॉडल समेत Sequelize के साथ समस्या है।सीक्वेलिज़ सीमा में एसोसिएशन
निम्नलिखित सही परिणाम उत्पन्न करता है, 10 तक सीमित और सही ढंग से क्रमबद्ध किया जाता है।
Visit.findAll({
limit: 10,
order: 'updatedAt DESC',
}).success(function(visits) {
res.jsonp(visits);
}).failure(function(err) {
res.jsonp(err);
})
एसक्यूएल
SELECT * FROM `Visits` ORDER BY updatedAt DESC LIMIT 10;
हालांकि जब मैं बजाय और इस तरह सबक्वेरी पर एक संघ यह suddently सीमा को जोड़ने के आदेश कभी नहीं एक सीमित परिणाम सेट की वजह से होता है।
Visit.findAll({
limit: 10,
order: 'updatedAt DESC',
include: [
{ model: Account, required: true }
]
}).success(function(visits) {
res.jsonp(visits);
}).failure(function(err) {
res.jsonp(err);
})
एसक्यूएल
SELECT
`Visits`.*
FROM
(SELECT
`Visits`.*, `Account`.`id` AS `Account.id`, `Account`.`email` AS `Account.email`, `Account`.`password` AS `Account.password`, `Account`.`role` AS `Account.role`, `Account`.`active` AS `Account.active`, `Account`.`createdAt` AS `Account.createdAt`, `Account`.`updatedAt` AS `Account.updatedAt`, `Account`.`practice_id` AS `Account.practice_id`
FROM
`Visits` INNER JOIN `Accounts` AS `Account` ON `Account`.`id` = `visits`.`account_id` LIMIT 10) AS `visits`
ORDER BY updatedAt DESC;
क्या मैं के रूप में इसलिए शीर्ष क्वेरी पर सीमा हो रही थी उम्मीद कर रहा था हूँ:
SELECT
...
FROM
(SELECT ...) AS `Visits`
ORDER BY `Visits`.updatedAt DESC LIMIT 10
LIMIT 10;
मैं ऊपर और अगर के रूप में मैं ऊपर की कोशिश में एक ही समस्या है समाधान यह क्लॉ द्वारा एक आदेश जोड़ता है सबकुछ और इसके बाहर दोनों में से। सबक्वायरी के बाहर 'अज्ञात कॉलम ... क्रम में खंड' की त्रुटि के साथ विफल रहता है। – adrianvlupu
यह सुनिश्चित नहीं है कि यह स्वीकार्य उत्तर क्यों है, भले ही 'ऑर्डर' में वास्तव में कोई समस्या हो। सबक्वायरी से बचने के लिए और अंत में LIMIT को रखने के लिए, आपको या तो findAll ({subQuery: false, ...}), या findAll ({include: {duplicating: false, ...}) को कॉल करने की आवश्यकता है। यह भी देखें https://stackoverflow.com/questions/26021965/sequelize-with-nodejs-cant-join-tables-with-limit –