首页 > 解决方案 > 如何根据PostgreSQL中的两列获取指定数据

问题描述

我是用 SQL 编写查询的新手,并且很难从表中获取数据。

我在数据库中有一个名为“地址”的表。在这里,我有更多的列,特别是从两列中我需要过滤掉数据。两者都是整数

  1. 频率类型ID
  2. date_of_invoice_id

    在此处输入图像描述

我只需要获取frequency_type_id = 1和date_of_invoice_id = 2、frequency_type_id = 2和date_of_invoice_id = 3、frequency_type_id = 3和date_of_invoice_id = 1的行。

我正在尝试使用以下查询,但它没有正确过滤,

SELECT address_id, company_name,  
invoice_batch_billing, frequency_type_id,  date_of_invoice_id
FROM pls.address where invoice_style='Consolidated' 
and frequency_type_id in 
(SELECT frequency_type_id from  pls.address where frequency_type_id=1 and date_of_invoice_id=1);

希望有人帮忙。

标签: sqlpostgresql

解决方案


试试下面的查询:

SELECT address_id, company_name,  
invoice_batch_billing, frequency_type_id,  date_of_invoice_id
FROM pls.address where invoice_style='Consolidated' 
and ((frequency_type_id=1 and date_of_invoice_id=2) or (frequency_type_id=2 and date_of_invoice_id=2) or (frequency_type_id=3 and date_of_invoice_id=2))

推荐阅读