mysql - SQL 连接 3 个表,然后在单个查询中从第 4 个表中提取数据
问题描述
我的数据库是 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
解决方案
只需添加另一个连接即可从您的工具表中引入列
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
推荐阅读
- node.js - 使用 Google Cloud Functions 确定点是否在多边形中的简单方法
- angular - 如何使用 Angular Application 构建渐进式 Web 应用程序?
- spring-boot - Springboot Heroku 应用程序在部署时崩溃
- entity-framework - 使用 Entity Framework 和集成测试搭建 .NETCore WebAPI 项目的工具
- forms - 在 MsAccess 表单中按“显示全部”按钮后删除关键字
- php - PHP:正则表达式,如何验证 android 和 ios 深层链接 URI
- java - 如何有效地将属性更改为 Android Studio 中的多个视图/按钮?
- javascript - jQuery FormBuilder 仅验证必填字段
- python - 如何在robot.api中调用监听类?
- python - 不允许我在函数和 int 之间使用 >