Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak używać zewnętrznego pełnego sprzężenia w laravel 5.0?

Nie wiem, co dokładnie próbuje osiągnąć twoje zapytanie i gdzie potrzebujesz pełnego sprzężenia zewnętrznego, ale zacznę tę odpowiedź od stwierdzenia, że ​​MySQL nie ma wbudowanej obsługi pełnego sprzężenia zewnętrznego. Na podstawie tego pytania SO , możemy znaleźć alternatywny sposób na napisanie następującego zapytania:

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

Można to przepisać jako UNION sprzężenia lewego i sprzężenia prawego:

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

W Laravel możemy napisać następujący kod reprezentujący powyższe pełne sprzężenie zewnętrzne:

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

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

Ponownie, nie wiem, dlaczego uważasz, że potrzebujesz dwóch sprzężeń zewnętrznych, ale niezależnie od tego powinieneś być w stanie dostosować powyższy kod i zapytanie i użyć go w swojej sytuacji.

Referencje:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzystanie z SQL JOIN i COUNT

  2. Formularz HTML / Php nie dodaje się do bazy danych SQL

  3. MySQL — funkcja FOUND_ROWS() dla całkowitej liczby wierszy, których dotyczy problem

  4. Mysql int(11) liczba poza zakresem

  5. Funkcja MySQL GREATEST() – znajdź największy argument na liście argumentów