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

Заявката на SQLAlchemy показва грешка Не може да присъедини таблица/избираеми „работни потоци“ към себе си

Част

.query(Workflow.user_id, func.count(Log.id))

добавя както Workflow и Log към вашето запитване. Първият модел е маркиран като основна таблица, а други са маркирани като вторични. Ако няма извиквания към .join() след това първичните и вторичните таблици ще бъдат добавени към FROM клауза. Ако има извиквания към .join() ще премести таблицата, която получава, към JOIN клауза. Важното тук е, че .join() може да се приложи само към вторичната таблица.

Проблемът е, че вашето обаждане до

.join(Workflow, Workflow.id == Log.workflow_id)

опитва да маркира основната таблица като присъединена. За да коригирате проблема, трябва да се присъедините към вторична таблица:

.join(Log, Workflow.id == Log.workflow_id)

Можете да добавите echo=True за да видите SQL, генериран от SQLAlchemy. Наистина е удобно да отстранявате грешки в заявките си. Или можете да компилирате единична заявка, за да видите генерирания SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql gem install pg 0.18.4 преминава, пакетната инсталация е неуспешна

  2. Алтернативи на PGTune - ClusterControl PostgreSQL конфигурация

  3. Преобразувайте секунди в yyyy-mm-dd hh:mm:ss PostgreSQL

  4. Не може да се свърже с Postgres DB поради тип удостоверяване 10 не се поддържа

  5. Как да създадете дървовидна таблица без циклична връзка?