2016-10-07 7 views
0

私はCoordinateイベントとWeatherイベントのモデルを持っています。座標オブジェクトは気象イベントを参照しませんが、各気象オブジェクトは座標のForeignKeyFieldを持ちます。天気モデルで外部キーによって参照されていないすべてのCoordinateオブジェクトを返したいと思います。Peeweeは、外部キーで参照されていないすべてのオブジェクトを返します

私がこれまでに単一のクエリがあるが、以下は私が来て、私が達成しようとしているものを示している最も近い想像

coords = Coordinate.select() 
no_weather = Coordinate.select().join(Weather).where(~(Weather.coordinate << coords)) 

私は "を残しているので、私は近いよ期待しています〜 "はWeatherオブジェクトに関連付けられたすべてのCoordinateオブジェクトを返します。私はちょうどその逆をしたい。

答えて

1

これを行う方法はたくさんあります。ここでは一つだ:

もたぶん
(Coordinate 
.select() 
.join(Weather, JOIN.LEFT_OUTER) 
.group_by(Coordinate) 
.having(fn.COUNT(Weather.id) == 0)) 

(Coordinate 
.select() 
.where(~fn.EXISTS(
    Weather 
    .select() 
    .where(Weather.coordinate == Coordinate.id)))) 
関連する問題