首页 > 解决方案 > SQL 三表连接

问题描述

我正在尝试使用我必须从数据库中查询的 3 个表来编写一些代码,以下是它的布局方式:

TableA (ID, Number, Name, etc.)

TableB (ID, Order, TableA_ID, etc.)

TableC (ID, Order, Action, Device, TableB_ID, etc.) 

现在我需要这些值(TableB.Order、TableC.Order、TableC.Action、TableC.Device

这些值由用户输入确定,该用户输入将采用TableA.Number的值(具有唯一 ID TableA.ID)。

Query = 
("SELECT TableB.Order, TableC.Order, 
         TableC.Action, TableC.Device  
    FROM TableC  
   INNER JOIN TableB  
      ON TableB.Id = TableC.TableB_Id  
   INNER JOIN TableA  
      ON TableA.Id = TableB.TableA_Id  
   WHERE TableA.Number  
    LIKE "USER INPUT") 

mycursor.execute(query)  
data = mycursor.fetchall()

寻找任何提示。

标签: sqlsql-serverinner-join

解决方案


查询应如下所示:

SELECT TableB.[Order] as TableB_Order, TableC.[Order] as TableC_Order, 
TableC.Action, TableC.Device
FROM TableA
INNER JOIN TableB ON TableA.Id = TableB.TableA_ID
INNER JOIN TableC ON TableB.Id = TableC.TableB_ID
WHERE TableA.Number LIKE '%USER INPUT%'

推荐阅读