我有两个sql表,alarmMessage
和coordinates
。 alarmMessage
表具有coordinates
表的外键字段。我想从alarmMessage
表中检索单行,其中坐标的坐标是最新的(最大)gpsDate字段。
alarmMessage:
CREATE TABLE alarmmessage
(
alarmmessageid bigint NOT NULL,
mtstrackid character varying(40),
coordinatesid bigint,
totaldistance double precision,
iostatusid bigint,
alarmstatus character varying(10),
totalworkingduration integer,
maintenanceremainingtime integer,
isread boolean NOT NULL DEFAULT false,
CONSTRAINT pk_alarmmessageid PRIMARY KEY (alarmmessageid ),
CONSTRAINT fk_coordinatesid FOREIGN KEY (coordinatesid)
REFERENCES coordinates (coordinatesid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk_iostatus FOREIGN KEY (iostatusid)
REFERENCES iostatus (iostatusid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk_mtstrackid FOREIGN KEY (mtstrackid)
REFERENCES vehicle (mtstrackid) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
坐标:
CREATE TABLE coordinates
(
coordinatesid bigint NOT NULL,
latitude double precision NOT NULL,
longitude double precision NOT NULL,
gpsvalid boolean,
gpsdate timestamp without time zone,
bearingangle double precision,
speed double precision,
mtstrackid character varying(40),
altitude double precision,
CONSTRAINT pk_coordinates PRIMARY KEY (coordinatesid )
)
答案 0 :(得分:0)
您可以使用以下SQL:
SELECT alarmmessage.* FROM alarmmessage
INNER JOIN coordinates ON alarmmessage.coordinatesid = coordinates.coordinatesid
ORDER BY gpsdate DESC
LIMIT 1