我有如下表所示的兩個表,我想列出在任務表中使用的位置行基,並且不重複location.id,也按任務表中的列排序。左連接和分組由
我不知道如何解決它使用組或其他方法?
(我之前也查過截然不同,但是它限制選擇專欄,好像不是我想要的..)
怎麼解決?
location
id | status | ...
1 | ...
2 | ...
id SERIAL NOT NULL
task
id | location_id | create_date | start_date | ...
1 | 1 | ...
2 | 1 | ...
3 | 2 | ...
id SERIAL NOT NULL
location_id integer DEFAULT NULL
create_date timestamp without time zone NOT NULL
start_date date NOT NULL
需要輸出結果
location order by task.create_date
id | ...
1 | ...
2 | ...
查詢
我加選擇t.location_id它的工作原理來算,但我仍然有問題,在選擇行
計數工作
SELECT count(l.*)
AS total_row_count
FROM location l
LEFT JOIN (
SELECT t.location_id
FROM task t
GROUP BY t.location_id
) t ON t.location_id = l.id
WHERE l.status = ANY($1::int[])
選擇
SELECT
l.*
FROM location l
LEFT JOIN (
SELECT t.location_id, t.create_date
FROM task t
GROUP BY t.location_id
) t ON t.location_id = l.id
WHERE l.status = ANY($1::int[])
ORDER BY t.create_date desc NULLS LAST,
l.name asc NULLS LAST, l.id desc NULLS LAST OFFSET $2 LIMIT $3
錯誤:
column "t.create_date" must appear in the GROUP BY clause or be used in an aggregate function SELECT t.create_date, t.location_id
我不明白你想要得到什麼結果。將它顯示爲一張表格,就像您對樣本數據所做的一樣。 –
請參閱我的更新,我想獲取位置表但不重複位置行 – user1775888
您的示例數據不完整。你能否在相關欄目中提供數據? – GurV