【发布时间】:2016-07-11 02:10:51
【问题描述】:
tbl_vehicle_mst
--------------------------
v_id v_no v_make
1 Bus-01 Tata
2 Bus-02 Volvo
3 Bus-03 Tatra
tbl_route_mst
--------------------------------
r_id r_no r_from r_to
1 01 A B
2 02 A C
3 03 A D
tbl_vehicle_route_map
-----------------------------
vrm_id r_id v_id
1 1 2
2 2 1
tbl_driver_mst
-------------------------------
d_id d_code d_name
1 drv-1 John
2 drv-2 Ram
3 drv-3 Gomesh
tbl_veh_driver_map
------------------------------
vem_id v_id d_id
1 1 2
2 2 3
如上所示,我有 5 张桌子。使用某种连接查询,我希望输出如下所示。由于涉及 5 个不同的表;我对如何达到所需的输出感到非常困惑。每次我坐下来编写连接查询时,一切都在我的脑海中混杂在一起,我感到困惑并且无法编写连接查询。我将非常感谢任何可能通过一些示例 sql 查询为我指明正确方向的人。提前致谢。
需要的输出
route v_no driver_name
------------------------------------
A to B Bus-02 Gomesh
A to C Bus-01 Ram
以下是我目前尝试过的
SELECT
(SELECT b.d_name FROM tbl_veh_driver_map a, tbl_driver_mst b WHERE a.d_id = b.d_id) AS DRIVER_NAME,
(SELECT DISTINCT(b.r_from || ' - ' || b.r_to) AS RT FROM tbl_veh_driver_map a,tbl_route_mst b,tbl_veh_route_map c WHERE a.v_id = c.v_id AND c.r_id = b.r_id) AS ROUTE,
(SELECT a.v_no FROM tbl_vehicle_mst a,tbl_veh_driver_map b WHERE a.v_id = b.v_id) AS v_no,
FROM tbl_veh_driver_map
【问题讨论】:
-
请举一个你试过的例子;它可能不正确,但可能离正确不远。
-
您使用的是什么关系型数据库? SQL Server、Oracle、MySql?请在您的问题中添加相关标签。