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

Vấn đề liên kết đến Thực thể và LEFT OUTER JOIN với quan hệ NHIỀU:1

Tôi đã làm việc một chút về một nhà cung cấp khung thực thể và đã xem xét điều đó. Tôi tin rằng bản thân nhà cung cấp không có lựa chọn nào khác trong tình huống này. Cây lệnh được tạo bởi khung thực thể và cung cấp cho trình cung cấp để xây dựng SQL. Đây là một phỏng đoán hoàn chỉnh ở đây, nhưng có thể lý do nó tạo ra phép nối LEFT OUTER trong tình huống đó là vì khung thực thể không thực sự biết rằng ràng buộc tham chiếu tồn tại trong cơ sở dữ liệu. Ví dụ:tôi có thể đi vào và kết hợp với mô hình thực thể sau khi nó được tạo từ cơ sở dữ liệu và thêm / thay đổi các ràng buộc không phản ánh những gì cơ sở dữ liệu đang làm. Có thể vì lý do này, các nhà thiết kế đã chọn cách chơi an toàn và tạo ra phép nối LEFT OUTER "chỉ trong trường hợp".

Tuy nhiên, tôi tin rằng bạn có thể tham gia vào bên trong. Ví dụ:điều sau đây khiến nhà cung cấp tạo kết nối LEFT OUTER:

var res2 = from a in ent.answers
           select new
           { a.Answer1, a.user.UserName };

Tuy nhiên, các kết quả sau dẫn đến tham gia INNER:

res2 = from a in ent.answers
       join u in ent.users
       on a.UserID equals u.PK
       select new { a.Answer1, u.UserName };

Ngoài ra, thực thể sau đây SQL tạo ra một liên kết bên trong:

ObjectQuery<DbDataRecord> dr = ent.CreateQuery<DbDataRecord>( 
         "SELECT a.answer1, u.username " +
         "FROM answers as a inner join users as u on a.userid = u.pk" );



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL lớn hơn hoặc bằng toán tử đang bỏ qua nghĩa vụ của nó hoặc bằng

  2. Làm thế nào để xem các tệp nhật ký trong MySQL?

  3. Truy vấn Mysql đến thời gian trung bình

  4. Cách sử dụng MySql trên Mac

  5. Menu điều hướng cây Mysql / php