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

MySQL LEFT JOIN duplikuje wyniki

Nie, to jest w porządku. To tylko jeden z rzadkich przypadków, gdy chcesz użyć DISTINCT słowo kluczowe do usuwania duplikatów.

W tym przypadku jest to uzasadnione tym, że logika zapytania jest poprawna, mimo że zwraca więcej niż jeden wiersz. Wiele razy można zobaczyć użycie DISTINCT kiedy w rzeczywistości logika zapytania jest nieprawidłowa.

Uwaga dodatkowa:

  • dowolny filtr w odniesieniu do tabeli, którego używasz w WHERE klauzula inna niż IS NULL/IS NOT NULL wykonałby dowolne LEFT JOIN w tym samym odwołaniu do tabeli przejdź do INNER JOIN , tak jak w przypadku zachowania końcowego zestawu wyników. (zobacz to:https://stackoverflow.com/a/15483895/1291428 )
  • nie powinieneś używać GROUP BY symulować efekt DISTINCT , z dwóch powodów:

    1/ To nie jest cel. Jeden z efektów GROUP BY jest wyeliminowanie duplikatów, ale jego głównym celem jest grupowanie wierszy według określonego zestawu kryteriów, aby zastosować na nich pewne obliczenia/operacje analityczne.

    2/ GROUP BY także ORDER BY wyniki (w mysql), co niekoniecznie jest tym, czego chcesz, a w takim przypadku spowalnia wykonanie. Proszę, po prostu zadbaj o odpowiednie wykorzystanie tego, co zapewniają silniki, co zawsze jest lepsze z punktu widzenia kompatybilności w przód. (przewidując, że to, co uwzględnisz jako przyznane, w rzeczywistości nie jest)

pozdrawiam.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odmowa dostępu dla użytkownika 'root'@'localhost' (przy użyciu hasła:Tak) po zresetowaniu hasła LINUX

  2. Jak mogę przechowywać i pobierać obrazy z bazy danych MySQL za pomocą PHP?

  3. MySQL/SQL:Aktualizacja ze skorelowanym podzapytaniem z samej zaktualizowanej tabeli

  4. Jak stworzyć tunel ssh w ruby, a następnie połączyć się z serwerem mysql na zdalnym hoście?

  5. Najlepszy sposób na tworzenie/zarządzanie/projektowanie powtarzających się zadań/kalendarza