sql - 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()
寻找任何提示。
解决方案
查询应如下所示:
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%'
推荐阅读
- c# - 如何更改选定的 Flyoutitem 背景颜色
- angular - 装饰器和指令在角度上有什么区别?
- sql - 具有多个条件的系列创建
- rust - Rust 将宏用于长 Trait 约束链
- php - 多选框将数据库值保持为选定 Laravel 5.8
- javascript - 如何以角度反应形式设置按钮文本
- django - 错误:变量 DJANGO_SETTINGS_MODULE 或在访问设置之前调用 settings.configure()。?
- php - Laravel \URL::to('/') 无法自动检测 HTTP 或 HTTPS
- c - 有什么办法可以将程序文件中的代码和注释分开
- google-cloud-platform - 使用 Google Cloud Vision 光学字符识别 (OCR) 进行同步转录