我有3個表:Django的查詢ForeignKey的COUNT()零
卡車與字段:id
,name
....
菜單與字段:id
,itemname
,id_foodtype
, id_truck
...
Foodtype與領域:id
,type
...
我想得到這樣的總結:
id name total
10 Alcoholic drink 0
5 Appetizer 11
我的問題是返回結果與0
元素。
我試過SQL查詢是這樣的:
SELECT
ft.id, ft.name, COUNT(me.id) total
FROM
foodtype ft LEFT JOIN menu me
ON ft.id = me.id_foodtype
LEFT JOIN truck tr
ON tr.id = me.id_truck AND tr.id = 3
GROUP BY ft.id, ft.name
ORDER BY ft.name
或查詢在Django
Menu.objects.filter(id_truck=3).values("id_foodtype").annotate(cnt=Count("id_foodtype"))
但是,無論是與Zero
元素顯示結果。
在將此查詢轉換爲Python
代碼的時刻,我的任何查詢都會返回我期望的確切結果。 如何在menu
中返回Left Join
的結果,包括foodtypes
和零個元素?
這是更多的問題sql-postgres比django –
我編輯你的問題可以更容易搜索,希望它是可以接受的。我也編輯了一些我的答案。 – hynekcer