Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एएसपी एमवीसी एमएसएसक्ल टू मायएसक्यूएल माइग्रेशन

क्या आप सुनिश्चित हैं कि आपकी दूसरी क्वेरी वास्तव में ठीक है?

1) Id =d.Id, <=यह अल्पविराम क्यों (वास्तव में महत्वपूर्ण नहीं)? ('आईडी =' बेमानी है)

2) .Where(m => m.Trash ==false) <='ट्रैश' चयन में नहीं है, इसलिए इस समय इस संपत्ति का पता नहीं है

3) .OrderByDescending(f => f.Created) <='क्रिएटेड' के लिए idem

4) .ToList () के बाद अल्पविराम क्यों?

मैंने आपके DDL (जो MWE नहीं है) को जेनरेट किए गए डेटा के साथ सरल बना दिया है। मैंने VS2013 में आपकी समस्या को पुन:प्रस्तुत किया है।

मैंने सीधे डेटाबेस के खिलाफ LINQPad के साथ आपकी क्वेरी का परीक्षण किया है और मुझे तीसरे परीक्षण के साथ भी यही समस्या है, शायद ड्राइवर mysql में एक बग:

trdposts.Select(a => new {
    Created = a.Created,
    Body = a.Body,
    Comments = a.Posttrdcomments
                .Select(d => new { Body = d.body, Id = d.Id, d.Created, d.Trash})
                .Where(m => m.Trash == 1)
                .OrderByDescending(f => f.Created)
                .Skip(33)
                .Take(10)
                .ToList()
    })

एक छोटी SQL क्वेरी दें:

SELECT t1.PostId, t1.body, t1.Id, t1.Created, t1.Trash
FROM trdposts AS t0
    OUTER APPLY (
      SELECT t2.body, t2.Created, t2.Id, t2.PostId, t2.Trash
      FROM trdcomments AS t2
      WHERE ((t2.PostId = t0.Id) AND (t2.Trash = 1))
      ORDER BY t2.Created DESC
  ) AS t1
ORDER BY t1.Created DESC

स्किप () और .टेक () के बिना, हमें अच्छा 'लेफ्ट आउटर जॉइन' मिलता है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Node.js mysql लेनदेन

  2. Google Analytics डेटा को mysql तालिकाओं में कैसे धकेलें

  3. मेरे डेटाबेस से टेबलस्पेस त्रुटि क्या है और कैसे निकालें?

  4. बुनियादी सुरक्षा, PHP mySQl

  5. MySQL UUID प्राथमिक कुंजी - PHP या MySQL द्वारा उत्पन्न?