PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách kết hợp hai truy vấn con trong SQLAlchemy và postgresql

tôi đã sử dụng cách tiếp cận hơi khác một chút:

# 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)

Đây là sql được sản xuất:

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

Tôi nghĩ đây là kết quả bạn mong muốn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận ngày thứ hai của tuần này ở Postgres?

  2. Cách sử dụng hàm date_part để phân chia giá trị mỗi tháng cho mỗi ngày và quốc gia

  3. java.sql.SQLException:Kết nối đã bị đóng

  4. Postgres không sử dụng chỉ mục khi quét chỉ mục là tùy chọn tốt hơn nhiều

  5. Sự cố khi truy cập DB Postgres từ xa trên Heroku từ Ứng dụng web Local Node.js