Search code examples
sqlsql-serverinner-join

SQL Three Table Joins


I am trying to write some code using 3 tables that I have to query from a database, the following is how it's laid out:

TableA (ID, Number, Name, etc.)

TableB (ID, Order, TableA_ID, etc.)

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

Now I need the values (TableB.Order, TableC.Order, TableC.Action, TableC.Device)

These values are determined from a user input which will take the value of TableA.Number (which has a unique 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()

Looking for any tips.


Solution

  • The query should be written like below :

    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%'