Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

W jaki sposób LEFT OUTER JOIN może zwrócić więcej rekordów niż istnieje w lewej tabeli?

LEFT OUTER JOIN zwróci wszystkie rekordy z LEWEJ tabeli połączone z PRAWĄ tabelą, jeśli to możliwe.

Jeśli jednak istnieją dopasowania, nadal zwróci wszystkie pasujące wiersze, dlatego jeden wiersz po LEWEJ pasujący do dwóch wierszy po PRAWEJ zwróci jako dwa WIERSZE, podobnie jak SPRZECZENIE WEWNĘTRZNE.

EDYCJA:W odpowiedzi na Twoją edycję przyjrzałem się dokładniej Twojemu zapytaniu i wygląda na to, że zwracasz tylko dane z tabeli LEFT. Dlatego jeśli chcesz tylko danych z tabeli LEFT i chcesz, aby zwracany był tylko jeden wiersz dla każdego wiersza w tabeli LEFT, nie musisz w ogóle wykonywać operacji JOIN i możesz po prostu wykonać SELECT bezpośrednio z tabeli LEFT.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak edytować tabelę, aby włączyć opcję CASCADE DELETE?

  2. Autoinkrementacja indeksu dla Microsoft SQL Server 2008 R2

  3. Jak połączyć tekst z wielu wierszy w jeden ciąg tekstowy w SQL Server

  4. Jak używać instrukcji GO w programie SQL Server do wstawiania rekordów w kolumnie tożsamości — samouczek SQL Server / T-SQL, część 42

  5. Najlepszy sposób na wdrożenie ścieżki audytu w SQL Server?