0
我一直在閱讀很多關於SQLAlchemy子查詢,不知何故,我認爲它應用於我的問題。SQLAlchemy子查詢,它們在這種情況下適用
我有以下2查詢
Query 1=>isp_ratings_per_service = db.session.query(func.count(Ratings.ratings_value).label('count_of_users'),
func.sum(Ratings.ratings_value).label('sum_of_ratings'),
func.avg(Ratings.ratings_value).label('avg_of_ratings'),
Isps.isp_name, Service_metric.metric_name, Services.service_name) \
.filter(Service_metric_ratings.isp_id == Isps.isp_id) \
.filter(Service_metric_ratings.ratings_value == Ratings.ratings_value) \
.filter(Service_metric_ratings.metric_id == Service_metric.metric_id) \
.filter(Service_metric_ratings.user_id == User.user_id) \
.filter(Service_metric_ratings.service_id == Services.service_id) \
.filter(Service_metric.metric_name == metric_name) \
.filter(Services.service_name == service_name) \
.group_by(Isps.isp_name)
Query 2 => ratings_table_values = db.session.query(Ratings.rating_value, Ratings.rating_comment)
我想使用存儲在該行的值
func.avg(Service_metric_ratings.ratings_id).label('avg_of_ratings'),
到另一臺基於這樣
for i in isp_ratings_per_service:
(round(i.avg_of_ratings)))
ratings_table_values = Ratings.query.filter_by(rating_value=(round(i.avg_of_ratings)))
這個值來選擇數據
是否可以使用子查詢將它們置於一個查詢中,目前的問題是它創建第2次迭代的燒瓶模板,是不是給我結果,我想如下
{% for i in ratings_table_values %}
<tr>
<td>{{ i.rating_value}}</td>
<td>{{ i.rating_comment}}</td>
{% endfor %}
{% for i in isp_ratings_per_service %}
blah blah blah
{% endfor %}
我寧願當一個查詢會給我我想要的結果,
看起來您需要對「評級」進行連接。您似乎在「評級」表中對「評級」的ID進行求和並取代了「rating_value」列的ID。 – univerio
@univerio是的,你是對的,我已經編輯了我的查詢相應的,我覺得它是工作的,因爲ratings_id和rating_value具有相同的值....不同的是,ratings_id是主鍵,所以我擺脫了這一列,將rating_value作爲該表的主鍵 – Chamambom