sql - 在 SQL 中连接 4 个表
问题描述
我有一个关于加入 4 张桌子的问题。这是我的查询。
SELECT
a.pick_id, a.Serial_No, a.Work_Ord_No, a.Lot_No,
a.Product_no, a.Plan_Qty, a.Machine_no, a.shift, a.Scan_dt,
b.Trml_code,
case when c.Wire_Type is null then '-' else c.Wire_Type +' '+ c.Wire_Size+' '+c.Wire_Color end as Wire,
case when d.Mtrl_code is null then '-' else d.Mtrl_code end as Material
FROM
pickMaster a
JOIN
pickTerminal b ON b.id = a.id
JOIN
pickWire c ON c.id = a.id
JOIN
pickInserting d ON d.id = a.id
这是我加入之前 4 个表的数据。
这是我加入他们之后的结果。
问题是在我加入 4 表后,结果显示 4 行具有相同的材料和电线数据。如何解决这个问题?任何想法?。
解决方案
你有一个介于pickTerminal
和之间的笛卡尔积pickInserting
。
您需要以某种方式连接这两个表。
例子!!这是我认为常见的唯一属性?!
SELECT
a.pick_id, a.Serial_No, a.Work_Ord_No, a.Lot_No,
a.Product_no, a.Plan_Qty, a.Machine_no, a.shift, a.Scan_dt,
b.Trml_code,
case when c.Wire_Type is null then '-' else c.Wire_Type +' '+ c.Wire_Size+' '+c.Wire_Color end as Wire,
case when d.Mtrl_code is null then '-' else d.Mtrl_code end as Material
FROM
pickMaster a
JOIN
pickTerminal b ON b.id = a.id
JOIN
pickWire c ON c.id = a.id
JOIN
pickInserting d ON d.id = a.id
and d.mtrl_side = b.Trml_side <-- add this
但如果没有更多上下文,很难说出如何归档它。
推荐阅读
- excel - Excel不将日期显示为文本
- javascript - 单击搜索提交按钮时显示进度条,直到加载搜索结果
- mysql - 我想组合两个查询,其中要重复第二个查询
- java - 如何让 JavaFX 在运行下一行代码之前等待节点完成配置
- python - Selenium Python - 将 Cookie 从会话传输到 Webdriver
- windows - 执行 npm.cmd 后批处理脚本中断
- javascript - Tabulator.js:获取/选择当前页面上的行
- python - 如何在 Tensorflow 中计算训练 RNN 语言模型的准确率?
- statistics - 超过 100 人到达车站的概率是多少,如果他们基于 2 分钟的指数分布来?
- python-3.x - 通过 Python 在 PowerPoint 中更新链接的 excel 路径