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

Как да обединим две подзаявки в SQLAlchemy и postgresql

използвах малко по-различен подход:

# the first subquery, select all ids from SOME_TABLE where some_field is not NULL
s1 = select([SOME_TABLE.c.id]).where(SOME_TABLE.c.some_field != None)

# the second subquery, select all ids from SOME_TABLE where some_field is NULL
s2 = select([SOME_TABLE.c.id]).where(SOME_TABLE.c.some_field != None)

# union s1 and s2 subqueries together and alias the result as "alias_name"
q = s1.union(s2).alias('alias_name')

# run the query and limit the aliased result to 10
session.query(q).limit(10)

Ето произведения sql:

SELECT alias_name.id AS alias_name_id 
FROM (SELECT some_table.id AS id 
FROM some_table 
WHERE some_table.some_field IS NOT NULL UNION SELECT some_table.id AS id 
FROM some_table 
WHERE some_table.some_field IS NULL) AS alias_name 
LIMIT 10

Мисля, че това е резултатът, който искахте.




  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 в Debian/Ubuntu

  2. Как Asinh() работи в PostgreSQL

  3. Добавете ограничение, за да направите колоната уникална за група редове

  4. Създайте PostgreSQL ROLE (потребител), ако не съществува

  5. Промяна на съпоставяне на база данни, Ctype в Postgresql