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

Làm thế nào để sử dụng tham gia đầy đủ bên ngoài trong laravel 5.0?

Tôi không biết chính xác truy vấn của bạn đang cố gắng đạt được điều gì và bạn cần một phép nối bên ngoài đầy đủ ở đâu, nhưng tôi sẽ bắt đầu câu trả lời này bằng cách nói rằng MySQL không có hỗ trợ sẵn có cho phép nối bên ngoài đầy đủ. Dựa trên câu hỏi SO này , chúng tôi có thể tìm ra cách khác để viết truy vấn sau:

SELECT * FROM t1
FULL OUTER JOIN t2
    ON t1.id = t2.id

Điều này có thể được viết lại dưới dạng UNION của phép nối bên trái và phép nối bên phải:

SELECT * FROM t1
LEFT JOIN t2 ON t1.id = t2.id
UNION ALL
SELECT * FROM t1
RIGHT JOIN t2 ON t1.id = t2.id

Trong Laravel, chúng ta có thể viết đoạn mã sau để đại diện cho phép nối bên ngoài đầy đủ ở trên:

$second = DB::table('t2')
             ->rightJoin('t1', 't1.id', '=', 't2.id')

$first = DB::table('t1')
            ->leftJoin('t2', 't1.id', '=', 't2.id')
            ->unionAll($first)
            ->get();

Một lần nữa, tôi không biết tại sao bạn nghĩ rằng bạn cần hai kết nối ngoài, nhưng bất kể bạn phải có thể điều chỉnh mã và truy vấn ở trên và sử dụng nó cho tình huống của bạn.

Tài liệu tham khảo:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tăng tốc quá trình xử lý cơ sở dữ liệu?

  2. Django:Sử dụng chèn SQL thô tùy chỉnh với thực thi và MySQL

  3. Làm cách nào để chèn javascript vào cơ sở dữ liệu mysql?

  4. Danh sách các chỉ định định dạng ngày trong MySQL

  5. Hàm SUM () trong MySQL