簡體   English   中英

MySQL-嵌套外鍵(具有多個表)

[英]MySQL - Nested Foreign Keys (with multiple tables)

我有公交車和路線的表,而表fare_t有公交車和路線的主鍵作為外鍵。 另一個表time_t具有fare_t的主鍵作為外鍵。 現在,我要進行查詢並將其連接在一起,以使查詢返回表time_t中的數據,其中包含表fare_t中的數據以及表總線中的數據,並且其主鍵的路由被添加為表fare_t中的外鍵。

如何寫查詢?

我嘗試了以下方法,

SELECT bus.name, routes.route_from, routes.route_to, fare_t.fare, time_t.time FROM time_t 
INNER JOIN bus ON bus.id = fare_t.bus_id
INNER JOIN routes ON routes.id  = fare_t.route_id
INNER JOIN fare_t ON fare_t.id = time_t.fare_t_t;

它將產生以下錯誤#1054 - Unknown column 'fare_t.bus_id' in 'on clause'

好像您在加入fare_t表之前,請嘗試:

SELECT bus.name, routes.route_from, routes.route_to, fare_t.fare, time_t.time
FROM time_t 
JOIN fare_t ON fare_t.id = time_t.fare_t_t
JOIN bus ON bus.id = fare_t.bus_id
JOIN routes ON routes.id  = fare_t.route_id;

如果不起作用,請共享fare_t的架構。

更新:

出於演示目的,以下是使用不同模式重現的相同錯誤:

mysql> SELECT *
    -> FROM users u
    -> JOIN user_skill uss ON uss.active = us.active
    -> JOIN user_state us ON us.uid = u.id;
ERROR 1054 (42S22): Unknown column 'us.active' in 'on clause'
mysql> 
mysql> SELECT *
    -> FROM users u
    -> JOIN user_state us ON us.uid = u.id
    -> JOIN user_skill uss ON uss.active = us.active
    -> ;
Empty set (0.01 sec)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM