Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.3k views
in Technique[技术] by (71.8m points)

SQLite compare two tables and fetch the actual row

I have two SQLite tables with same fields:

Fields

The first table named as FB_Config_Trace and the second FB_Settings.

FB_Config_Trace will be filled by the script to fetch the latest values from an configuration file, FB_Settings will be set by an user.

Sample Data:

FB_Config_Trace:

FB_Config_Trace Data

FB_Settings:

enter image description here

How i can fetch the latest rows/entries by given Time?

Sample


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Join FB_Settings to FB_Config_Trace with a LEFT join like this:

SELECT COALESCE(c.ID, s.ID) ID,
       s.Key,
       CASE WHEN c.ID IS NULL THEN s.Value ELSE c.Value END Value,
       COALESCE(c.Time, s.Time) Time
FROM FB_Settings s LEFT JOIN FB_Config_Trace c 
ON c.Key = s.Key AND c.Time > s.Time

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...