Mysql
 sql >> база данни >  >> RDS >> Mysql

Разбиране на декартово произведение в SQL

Декартово съединение свързва всеки запис в първата таблица с всеки запис във втората таблица, така че тъй като вашата таблица има 7 реда и е свързана със себе си, тя трябва да върне 49 записа, ако не сте имали where клауза. Вашата клауза where позволява само записи където a Балансът на е по-малък от b баланс. От 900 е, както казахте, максималният баланс в таблицата, той никога няма да бъде по-малък от всеки друг баланс и следователно никога няма да бъде върнат.

По отношение на първите пет реда нормалните правила на SQL се прилагат и за обединения. Тъй като SQL таблиците нямат вътрешен ред, изцяло зависи от базата данни да реши как да ги върне, освен ако изрично не посочите ред в order by клауза. Стойностите, които изброихте, са напълно валидни стойности, които бихте очаквали да върне заявката.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Преглед с подзаявка в ограничението на клаузата FROM

  2. flake8 се оплаква от булево сравнение ==във филтърна клауза

  3. Създаване на връщане на карета в csv клетка чрез php

  4. Ако таблица съществува, пуснете таблицата, тогава я създайте, ако не съществува, просто я създайте

  5. Независима от база данни MAX() функция в SQLAlchemy