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

ПРИСЪЕДИНЕТЕ (ИЗБЕРЕТЕ ... ) ue ON 1=1?

Намерението е безусловно LEFT JOIN , което еразлично от CROSS JOIN в това, че всички редове от левия табличен израз се връщат, дори ако няма съвпадение в десния табличен израз - докато CROSS JOIN пуска такива редове от резултата. Повече за присъединяванията в ръководството.

Въпреки това:

1=1 е безсмисленото в Postgres и всички производни, включително Amazon Redshift. Просто използвайте true . Това вероятно е пренесено от друга RDBMS, която не поддържа boolean въведете правилно.

... LEFT JOIN (SELECT  ...) ue ON true

След това отново LEFT JOIN е безсмислено за тази конкретна подзаявка с SELECT MIN(modified) FROM user вдясно, защото SELECT с агрегатна функция (min() ) и без GROUP BY клаузата винаги връща точно един ред. Този случай (но не и други случаи, при които няма ред може да се намери) може да бъде опростена до:

... CROSS JOIN (SELECT MIN(modified) AS first_modified FROM user) ue


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Heroku Postgres Грешка:PGError:ГРЕШКА:релационни организации не съществуват (ActiveRecord::StatementInvalid)

  2. Намек за PostgreSQL

  3. ГРЕШКА:низ в кавички без край на или близо

  4. PostgreSQL заявка с 'ANY' не работи

  5. Какво прави ::в PostgreSQL?