sqlalchemy合并不同2个不同列名的表

背景:最近在开发一个flask项目,仿知乎的系统,数据库链接采用sqlalchemy

首页的需求:获取最多赞同和最多评论的文章,排在前面

import math

from flask import Blueprint, render_template, request, abort, flash, redirect, url_for, jsonify
from flask_login import login_required, current_user
from sqlalchemy import func, select, case, desc
from sqlalchemy.orm import aliased

from models import Question, Answer, AnswerComment, db, AnswerLove

@qa.route('/test/')
def test():
    # 首页
    # 获取赞同的问题id ,with_entities:指定返回的字段
    answerlove_qids = [list(q_id) for q_id in AnswerLove.query.with_entities(AnswerLove.q_id).all()]
    # 获取回复评论问题id(即有评论的问题)
    answer_qids = [list(q_id) for q_id in Answer.query.with_entities(Answer.q_id).filter(Answer.is_valid == 1).all()]
    '''左链接查询到问题的id、title、img、desc_、content、get_img_url、love_count(赞同的数量)'''
    question_result = (Question.query.outerjoin(AnswerLove, AnswerLove.q_id == Question.id). \
                       with_entities(  # 限制返回的字段
        Question.id.label('id'),  # label:别名
        Question.title.label('title'),
        Question.img.label('img')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值