SQL连接3个表,然后在单个查询中从第4个表中提取数据

时间:2018-05-10 21:01:35

标签: mysql sql mysqli pdo phpmyadmin

我的数据库是MySQL。我有4个表,这是结构:

users
---------------------------------
id | user_name | email | password
---------------------------------

tools
-----------------------------
id | tool_name | tool_details
-----------------------------

package
----------------------------------------------
id | package_name | tool_id | price | validity
----------------------------------------------

transaction
-----------------------------------------------
id | user_id | package_id | buy_date | expire_date
-----------------------------------------------

现在,我将users.id作为输入使用,我想知道哪个用户正在使用哪个工具包。输出应该是这样的

user_name | tool_name | tool_details | package_name | price | buy_date | expire_date

我已运行此查询,但使用此查询我不知道如何获取tool_name

SELECT 
  users.user_name, 
  transaction.package_id, 
  transaction.buy_date, 
  transaction.expiry_date
  package.price 
FROM 
  transaction 
  INNER JOIN 
    users ON 
    users.id = transaction.user_id 
  INNER JOIN 
    plans ON 
    transaction.package_id = package.id

1 个答案:

答案 0 :(得分:1)

只需添加另一个联接即可引入工具表中的列

SELECT 
  users.user_name, 
  transaction.package_id, 
  transaction.buy_date, 
  transaction.expiry_date,
  package.price,
  tools.tool_name 
FROM 
  transaction 
  INNER JOIN 
    users ON 
    users.id = transaction.user_id 
  INNER JOIN 
    package ON 
    transaction.package_id = package.id
  INNER JOIN
    tools ON
    package.tool_id = tools.id