Sql SQLite多表查询

Sql query for multiple tables of SQLite

我有一个 SQL 数据库 (pq),其中包含 3 个表,示例如图所示。我正在努力实现以下目标:

row id        READ_TIME          OBS_METER  OBS_LOCATION   MEASUREMENT    VALUE   CUST_CLASS  SOLAR
28/01/2018 2018/01/28 01:55:00    105714         6787            P         284         R       F

..........

我搜索了 现有答案 , 2 但我无法编写一个 SQL 查询来产生高于预期的输出。

Select only rows with variable P from the MEASUREMENT column in Table 3.

select * from pq_data WHERE MEASUREMENT='P';

Then, fetch the data columns CUST_CLASS, and SOLAR from Table 1 into Table 3 according to OBS_METER id.

select * 
from pq_data pd
inner join meter_mapping mm on pd pd.obs_meter=mm.obs_meter
inner join location_mapping lm on mm.obs_location=lm.obs_location
WHERE pd.MEASUREMENT='P'

The expected output of SQL query is Table 3 with additional columns from other tables:

您没有指定哪个 table 是您想要的 rowid,我假设它来自 pq_data。

此外,我不知道 pq_data 上的条目是否总是在 meter_mapping(和 location_maping)中有匹配项。如果不是,则需要使用“左连接”(或右连接)。

如果您在问题中使用 table 的实际名称(而不是 table 1、2 和 3),会更容易。

select pd.rowid, pd.READ_TIME, pd.OBS_METER, mm.OBS_LOCATION, pd.MEASUREMENT, pd.VALUE, lm.CUST_CLASS, lm.SOLAR
from pq_data pd
inner join meter_mapping mm on pd pd.OBS_METER=mm.OBS_METER
inner join location_mapping lm on mm.OBS_LOCATION=lm.OBS_LOCATION
WHERE pd.MEASUREMENT='P'