【问题标题】:Django : select all columns when innerjoin using extra without foreignkeyDjango:在没有外键的情况下使用额外的内部连接时选择所有列
【发布时间】:2018-05-05 17:56:30
【问题描述】:

我有两个表,它们没有外键或关系。但是,我必须加入并从两个表中获取所有列。这是我提出的查询。

query = Sms.objects \
        .extra(tables=['product'], where=['product.id=sms.sms_id'])

当我打印原始查询时,我可以检查它仅从 Sms 模型获取表,而不是从产品模型获取表。有没有办法从产品模型中获取列?

【问题讨论】:

    标签: mysql django orm inner-join


    【解决方案1】:

    听起来你需要一些raw queries

    显然,您需要根据您的需求以及您希望/需要如何访问数据来自定义您的 SQL。但这里有一个非常简单的例子:

    crsr = dbconnection.cursor()
    myresults = crsr.execute("SELECT A.*, B.* FROM A,B WHERE A.ID=B.ID")
    for myresult in myresults:
        print('{} {} {}'. format(myresult[0], myresult [1], myresult[2]))
    crsr.close()
    

    这个主题的django documentation 非常好。这是 Django 的一个强大功能。但拥有强大的力量......

    【讨论】:

      猜你喜欢
      • 2019-10-09
      • 2016-05-23
      • 2017-07-31
      • 1970-01-01
      • 2016-11-23
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多