PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

JOIN Multiple Table basierend auf Zeitstempel und einer anderen Bedingung

Durch Hinzufügen von date und time Feld erhalten Sie den Zeitstempel, den Sie für den Beitritt vergleichen können. Sie können Ihre Abfrage also wie folgt schreiben:

select 
t1.userid, t1.date_in, t1.check_in, t2.checktime, t3.alias
from process t1
inner join checkinout t2 on t2. checktime= date_in + check_in and t1.userid=t2.userid
inner join table3 t3 on t2.sn=t3.sn

DEMO

In Bezug auf Ihren Fehler haben Sie in Ihrer Frage ERROR: more than one row returned by a subquery used as an expression erwähnt ist auf die von Ihnen verwendete Join-Bedingung zurückzuführen.