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

Zrozumienie iloczynu kartezjańskiego w SQL

Złączenie kartezjańskie łączy każdy rekord w pierwszej tabeli z każdym rekordem w drugiej tabeli, więc skoro twoja tabela ma 7 wierszy i jest złączona ze sobą, powinna zwrócić 49 rekordów, gdybyś nie miał where klauzula. Twoja klauzula where zezwala tylko na rekordy, w których a saldo jest mniejsze niż b równowaga. Od 900 jest, jak powiedziałeś, maksymalnym saldem w tabeli, nigdy nie będzie ono mniejsze niż jakiekolwiek inne saldo i dlatego nigdy nie zostanie zwrócone.

W odniesieniu do pierwszych pięciu wierszy, normalne zasady SQL dotyczą również złączeń. Ponieważ tabele SQL nie mają wewnętrznej kolejności, decyzja o sposobie ich zwrócenia zależy wyłącznie od bazy danych, chyba że jawnie określisz kolejność w order by klauzula. Wymienione wartości są całkowicie prawidłowymi wartościami, których można oczekiwać od zapytania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyświetlać kolumnę rozmiaru jako wiersz dla każdego produktu kolorowego w powiązanej tabeli?

  2. BLOB vs. VARCHAR do przechowywania tablic w tabeli MySQL

  3. Błąd składni wyszukiwania i zamiany MySQL

  4. jak zapisać wartość wyliczenia do DB z Hibernate?

  5. Wybieranie danych tabeli MySql do tablicy