在 PostgreSQL 中显示来自外部关系的数据

Displaying data from an external relationship in PostgreSQL

我有一个数据库,我在使用 table 中的值进行过滤时遇到问题,该 table 与我的主要 table.

没有直接关系

我的数据库大致如下

table_main

+----+------------+--------+-------+-------+
| id | date       | veh_id | dep   | arr   |
+----+------------+--------+-------+-------+
| 1  | 2020-01-01 | 1      | 00:00 | 10:00 |
+----+------------+--------+-------+-------+

table_vehicles

+----+------------+-----------------+
| id | reg_number | vehicle_type_id |
+----+------------+-----------------+
| 1  | 10         | 1               |
+----+------------+-----------------+
| 2  | 11         | 1               |
+----+------------+-----------------+
| 3  | 12         | 1               |
+----+------------+-----------------+
| 4  | 13         | 2               |
+----+------------+-----------------+

table_vehicle_types

+----+-------+--------+
| id | make  | model  |
+----+-------+--------+
| 1  | Chevy | Impala |
+----+-------+--------+
| 2  | Ford  | Fusion |
+----+-------+------- +

table_vehicle_types 链接到 table_vehicles,table_vehicles 链接到 table_main

我想要做的是在 select 查询中显示我的 table_main 并过滤它以显示特定的车辆类型,例如我想查看 Impalas 进行的所有旅行当我查询 table_main 时,我不知道该怎么做。

如有任何帮助,我们将不胜感激,谢谢

您可以开始使用此查询。将需要一个 JOIN 用于将表格相互关联,如下所示。

select t1.*
 from table_main t1
 join table_vehicles t2
 on t2.id = t1.veh_id
 left join table_vehicle_types t3
 on t3.id = t2.vehicle_type_id
 where t3.model = 'Impala'