SQL - 如何连接 2 个表,其中条目列为一个表中的行和另一表中的列?

问题描述 投票:0回答:1

我对 SQL 不太了解,所以如果我的问题很愚蠢,我提前道歉。

我在一家生产微芯片的工厂工作。

我们一次批量生产 10,000 个微芯片。 每批微芯片主要由“批次代码”标识。

批次代码始终是一个以“1000-”开头,后跟 6 个自然数的字符串。 例如,“1000895645”是一个批次代码。

制造微芯片的第一阶段涉及同时运行(并行)两批微芯片。

这 2 批次称为“姐妹批次”。

例如,“1000895645”的姊妹地块是地块“1000895646”。

有一个名为 EM_EQUIPMENT_LG 的表,它在相邻列中显示姐妹批次。

LOT1 LOT2
1000895645 1000895646

(这可能不相关 - 但请注意,姐妹批次代码并不总是相差 +1。LOT1 也不总是较小的数字,也不总是奇数。)

还有另一个名为 SENSOR_LOT 的表,它显示批次的不同标识符,称为“LOT ID”。

它显示这样的条目:

LOT_代码 LOT_ID
1000895645 1392371801
1000895646 1402371811

我的问题是 - 是否可以将这两个表连接在一起,以便我获得这样的表?

LOT_CODE1 LOT_ID1 LOT_CODE2 LOT_ID2
1000895645 1392371801 1000895646 1402371811
sql oracle join relational-database
1个回答
0
投票

您可以两次加入同一个表,但需要唯一的别名。

下面的示例应该可以工作。

SELECT
  EM_EQUIPMENT_LG.LOT1 AS LOT_CODE1
  SL1.LOT_ID AS LOT_ID1
  EM_EQUIPMENT_LG.LOT2 AS LOT_CODE2
  SL2.LOT_ID AS LOT_ID2
FROM EM_EQUIPMENT_LG
JOIN SENSOR_LOT SL1 ON EM_EQUIPMENT_LG.LOT1 = SL1.LOT_CODE
JOIN SENSOR_LOT SL2 ON EM_EQUIPMENT_LG.LOT2 = SL2.LOT_CODE
© www.soinside.com 2019 - 2024. All rights reserved.