2017-11-29 3 views
0

나는 같은입니다 표 3을 가지고 내가 좋아하는 것입니다 표 2,파이썬을 사용하여 'id'입력을 기반으로 테이블에서 레코드를 검색하는 방법은 무엇입니까?

project_id |              energy_type              | uses |    target    |   title    
------------+-------------------------------------------------------------------------------------------------------------------------+------+----------------------------------+------------------------------ 
300  | {"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"} |  | Target % Better than Median: 75 | About this Property's Design 
400  | {"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"} |  | Target % Better than Median: 75 | About this Property's Design 

이 같은입니다 ,

project_id |     metric     | design_target | median_property | design_project 
------------+----------------------------------------+---------------+-----------------+---------------- 
300  | ENERGY STAR score (1-100)    | Not Available | 50    | Not Available 
300  | Source EUI (kBtu/ft\u00b2)    | 35.4   | 141.4   | Not Available 
300  | Site EUI (kBtu/ft\u00b2)    | 15.8   | 63.1   | Not Available 
300  | Source Energy Use (kBtu)    | 3,536.0  | 14,144.1  | Not Available 
300  | Site Energy Use (kBtu)     | 1,578.7  | 6,314.9   | Not Available 
300  | Energy Cost ($)      | 34.61   | 138.44   | Not Available 
300  | Total GHG Emissions (Metric Tons CO2e) | 0.2   | 0.6    | 0.0 
400  | ENERGY STAR score (1-100)    | Not Available | 50    | Not Available 
400  | Source EUI (kBtu/ft\u00b2)    | 35.4   | 141.4   | Not Available 
400  | Site EUI (kBtu/ft\u00b2)    | 15.8   | 63.1   | Not Available 
400  | Source Energy Use (kBtu)    | 3,536.0  | 14,144.1  | Not Available 
400  | Site Energy Use (kBtu)     | 1,578.7  | 6,314.9   | Not Available 
400  | Energy Cost ($)      | 34.61   | 138.44   | Not Available 
400  | Total GHG Emissions (Metric Tons CO2e) | 0.2   | 0.6    | 0.0 

project_id | your_design_score 
------------+------------------- 
300  | N/A 
400  | N/A 

나는 테이블 기반 프로젝트에 참여하고있다. ct_id = '300'파이썬에서 #declared

PROJECT_ID 지금 PROJECT_ID 입력을 기반으로 레코드를 표시하려고

[('300', 'ENERGY STAR score (1-100)', 'Not Available', '50', 'Not Available', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A'), ('300', 'Source EUI (kBtu/ft\\u00b2)', '35.4', '141.4', 'Not Available', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A'), ('300', 'Site EUI (kBtu/ft\\u00b2)', '15.8', '63.1', 'Not Available', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A'), ('300', 'Source Energy Use (kBtu)', '3,536.0', '14,144.1', 'Not Available', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A'), ('300', 'Site Energy Use (kBtu)', '1,578.7', '6,314.9', 'Not Available', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A'), ('300', 'Energy Cost ($)', '34.61', '138.44', 'Not Available', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A'), ('300', 'Total GHG Emissions (Metric Tons CO2e)', '0.2', '0.6', '0.0', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A'), ('400', 'ENERGY STAR score (1-100)', 'Not Available', '50', 'Not Available', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A'), ('400', 'Source EUI (kBtu/ft\\u00b2)', '35.4', '141.4', 'Not Available', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A'), ('400', 'Site EUI (kBtu/ft\\u00b2)', '15.8', '63.1', 'Not Available', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A'), ('400', 'Source Energy Use (kBtu)', '3,536.0', '14,144.1', 'Not Available', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A'), ('400', 'Site Energy Use (kBtu)', '1,578.7', '6,314.9', 'Not Available', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A'), ('400', 'Energy Cost ($)', '34.61', '138.44', 'Not Available', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A'), ('400', 'Total GHG Emissions (Metric Tons CO2e)', '0.2', '0.6', '0.0', '{"Energy Not Entered","Assumed Mix Based on State & Property Type:","","Electric - Grid (56.9%)","Natural Gas (43.1%)"}', None, ' Target % Better than Median: 75', "About this Property's Design", 'N/A')] 

,

import psycopg2 

con = psycopg2.connect(dbname="db", 
     user="postgres", host="localhost", 
     password="") 
d1 = "select t1.project_id,t1.Metric, t1.Design_Target, t1.Median_Property, t1.Design_Project, t2.Energy_Type, t2.Uses, t2.Target, t2.Title, t3.your_design_score from metric_comparison t1, property_design t2, design_score t3 where t1.project_id = t2.project_id and t2.project_id = t3.project_id" 
cursor.execute(d1) 
d2 = cursor.fetchall() 
print d2 
con.commit() 

내가 같은 출력을 가지고, 파이썬 사용 코드 PROJECT_ID의 입력을 기반으로 위의 출력에서 ​​레코드를 표시해야합니다.

project_id가 PROJECT_ID와 일치하는 레코드를 표시해야합니다. execute 방법에 paremeter을 통과하는 SQL 측

+0

이 파이썬 특정하지 않습니다. 질문에 대답하려면 t1.project_id = PROJECT_ID를 쿼리하십시오. –

+0

@AmitTripathi, 친구가 작동하지 않았다 – venkat

+0

@AmitTripathi, 내가 했어 t1.project_id = ' "+ str (PROJECT_ID) – venkat

답변

1

필터 :

d1 = """ 
    select 
     project_id, 
     t1.Metric, 
     t1.Design_Target, 
     t1.Median_Property, 
     t1.Design_Project, 
     t2.Energy_Type, 
     t2.Uses, t2.Target, 
     t2.Title, 
     t3.your_design_score 
    from 
     metric_comparison t1 
     inner join 
     property_design t2 using (project_id) 
     inner join 
     design_score t3 using (project_id) 
    where project_id = %s 
""" 
project_id = '300' 
cursor.execute(d1, [project_id]) 
+0

buddy 직접 Project_id를 전달하고 싶지 않고 대신 변수로 전달하려고합니다. – venkat

+0

@venkat 수정 됨. –

+0

대단한 감사 버디. – venkat

관련 문제