我正在尝试使用Django模型为一个记录创建一个连接字段,然后返回一个由外键连接的两个不同表组成的连接字段。你知道吗
我可以在SQL中这样做:
SELECT
location.location_geoname_id as id,
CONCAT_WS(', ', location.location_name, region.region_name, country.country_name) AS 'text'
FROM
geonames_location as location
JOIN
geonames_region as region
ON
location.region_geoname_id = region.region_geoname_id
JOIN
geonames_country as country
ON
region.country_geoname_id = country.country_geoname_id
WHERE
location.location_name like 'location'
ORDER BY
location.location_name, region.region_name, country.country_name
LIMIT 10;
使用Django模型有没有更干净的方法?或者我只需要使用SQL来完成这个任务?你知道吗
谢谢
您真的需要SQL来返回连接字段吗?为什么不以通常的方式(使用
select_related()
)查询模型,然后用Python连接呢?或者,如果您担心查询的列数超出需要,请使用values_list
:您也可以像这样在代码中为此编写原始查询,然后可以连接起来。你知道吗
示例:
在一个原始查询中保留一个东西,您必须始终获取表的主键,这是必需的。这里organization\u id是contact\u organization表的主键。你知道吗
它取决于你哪一个是有用的和简单的(原始查询或模型查询)。你知道吗
相关问题 更多 >
编程相关推荐