Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

ASP MVC MsSql di chuyển sang MySQL

Bạn có chắc chắn truy vấn thứ hai của mình thực sự ổn không?

1) Id =d.Id, <=Tại sao lại là dấu phẩy (không thực sự quan trọng)? ('ID =' là thừa)

2) .Where (m => m.Trash ==false) <='Trash' không được chọn, vì vậy thuộc tính này không được biết tại thời điểm này

3) .OrderByDescending (f => f.Create) <=idem cho 'Đã tạo'

4) Tại sao lại có dấu phẩy sau .ToList ()?

Tôi đã đơn giản hóa DDL của bạn (không phải là MWE) với dữ liệu được tạo. Tôi đã tái tạo sự cố của bạn trong VS2013.

Tôi cũng đã kiểm tra truy vấn của bạn với LINQPad trực tiếp trên cơ sở dữ liệu và tôi gặp vấn đề tương tự với lần kiểm tra thứ ba, có thể là lỗi trong trình điều khiển 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()
    })

Đưa ra một truy vấn SQL ngắn hơn:

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

Nếu không có .Skip () và .Take (), chúng ta sẽ có 'LEFT OUTER JOIN' tốt



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SELECT LAST_INSERT_ID () hoạt động trong Truy vấn MySQL Trực tiếp nhưng không liên tục PHP QUERY

  2. Làm cách nào để tôi có thể xem nội dung của một tuyên bố đã soạn sẵn?

  3. Cách ĐẶT HÀNG THEO TRƯỜNG HỢP trong Doctrine2 (Symfony2)

  4. Sử dụng regex với LIKE để sắp xếp các bảng chữ cái trước rồi đến các ký hiệu SQL

  5. Làm cách nào để đặt bí danh một trường hoặc cột trong MySQL?