我想最好喜歡的下方,只是stories.id
組中列出的第一個查詢,但我得到了以下錯誤:獲取組後,「最新的」行通過在多個表
ERROR: column "u.first_name" must appear in the GROUP BY clause or be used in an aggregate function LINE 1: SELECT "s".*, "u"."first_name", "u"."last_name", ("i"."filen...
第二個查詢作品但不會按stories.id
分組,並生成錯誤的結果。是否可以從多個表中進行選擇而不是全部進行分組?
表panels
也有一列updated_at
。我想根據panels.updated_at
得到每個故事最新的file
。
SELECT
"s".*,
"u"."first_name",
"u"."last_name",
("i"."filename" || '.' || "i"."extension") AS "file"
FROM
"stories" "s"
LEFT JOIN "panels" "p" ON("p"."story_id" = "s"."id")
LEFT JOIN "users" "u" ON("s"."user_id" = "u"."uid")
LEFT JOIN "images" "i" ON ("p"."image_id" = "i"."id")
WHERE
"s"."complete" = false AND
"s"."created_by" = 205700489
GROUP BY
"s"."id",
ORDER BY
"s"."created_at" DESC
SELECT
"s".*,
"u"."first_name",
"u"."last_name",
("i"."filename" || '.' || "i"."extension") AS "file"
FROM
"stories" "s"
LEFT JOIN "panels" "p" ON("p"."story_id" = "s"."id")
LEFT JOIN "users" "u" ON("s"."user_id" = "u"."uid")
LEFT JOIN "images" "i" ON ("p"."image_id" = "i"."id")
WHERE
"s"."complete" = false AND
"s"."created_by" = 205700489
GROUP BY
"s"."id",
"u"."first_name",
"u"."last_name", "i"."filename",
"i"."extension"
ORDER BY
"s"."created_at" DESC
第二個查詢的結果是怎麼錯了? –
@Igor Romanchenko它不是由故事編號組編號 – Stefan
您的問題沒有定論。如果你想通過'story.id'進行分組,你可以*從多行中定義要做什麼。 –