I have a query below:
SELECT "post".*, "schedule"."from_time" AS "scheduleFrom", "schedule"."to_time" AS "scheduleTo", "schedule"."id" AS "scheduleId"
FROM "post" LEFT JOIN "post_schedule" ON "post"."id" = "post_schedule"."post_id" LEFT JOIN "schedule" ON "post_schedule"."schedule_id" = "schedule"."id"
WHERE ("post"."type"='session') AND ("schedule"."from_time" >= 1497441023 or "post_schedule"."is_repeat" = TRUE)
AND (post.id = 72 or post.id = 219 or post.id = 227 or post.id = 220 or post.id = 221)
AND (schedule.status = '1')
Group by post.id
It's work fine with mysql, but in postgres I have an error like that: must appear in the GROUP BY clause or be used in an aggregate function.
This is table post
CREATE TABLE public.post
(
id integer NOT NULL DEFAULT nextval('post_id_seq'::regclass),
name character varying(255) COLLATE pg_catalog."default" NOT NULL,
excerpt character varying(255) COLLATE pg_catalog."default",
content text COLLATE pg_catalog."default",
author_id integer,
published_at integer,
slug character varying(255) COLLATE pg_catalog."default",
type character varying(10) COLLATE pg_catalog."default",
meta_title character varying(255) COLLATE pg_catalog."default",
meta_description character varying(255) COLLATE pg_catalog."default",
meta_keywords character varying(255) COLLATE pg_catalog."default",
status smallint NOT NULL DEFAULT 10,
created_at integer NOT NULL,
updated_at integer NOT NULL,
created_by integer NOT NULL,
updated_by integer NOT NULL,
CONSTRAINT post_pkey PRIMARY KEY (id),
CONSTRAINT "fk-post-author_id" FOREIGN KEY (author_id)
REFERENCES public."user" (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE NO ACTION
)
post_schedule
CREATE TABLE public.post_schedule
(
id integer NOT NULL DEFAULT nextval('post_schedule_id_seq'::regclass),
post_id integer NOT NULL,
schedule_id integer NOT NULL,
is_repeat boolean DEFAULT false,
CONSTRAINT post_schedule_pkey PRIMARY KEY (id),
CONSTRAINT "fk-post_schedule-post_id" FOREIGN KEY (post_id)
REFERENCES public.post (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE CASCADE,
CONSTRAINT "fk-post_schedule-schedule_id" FOREIGN KEY (schedule_id)
REFERENCES public.schedule (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE CASCADE
)
and table schedule
CREATE TABLE public.schedule
(
id integer NOT NULL DEFAULT nextval('schedule_id_seq'::regclass),
name character varying(255) COLLATE pg_catalog."default",
status character varying(255) COLLATE pg_catalog."default",
"from" character varying(255) COLLATE pg_catalog."default",
"to" character varying(255) COLLATE pg_catalog."default",
created_at integer NOT NULL,
updated_at integer NOT NULL,
created_by integer NOT NULL,
updated_by integer NOT NULL,
from_time integer,
to_time integer,
CONSTRAINT schedule_pkey PRIMARY KEY (id)
)
example for data when I query with non group by: here
How can I get first row foreach post.id?