Sql 通过第三个关系表连接两个表,该关系表关联前两个表,但其id不同
通常,当id匹配时,我们可以执行以下操作:Sql 通过第三个关系表连接两个表,该关系表关联前两个表,但其id不同,sql,Sql,通常,当id匹配时,我们可以执行以下操作: SELECT Table1.somecol, Table2.somecol FROM Table3 INNER JOIN Table1 ON Table3.Id = Table1.Id INNER JOIN Action ON Table3.Id = Table2.Id 问题是我遇到了以下id不匹配的情况: 表1: +-----------+------------+------------+----
SELECT Table1.somecol, Table2.somecol
FROM Table3
INNER JOIN Table1
ON Table3.Id = Table1.Id
INNER JOIN Action
ON Table3.Id = Table2.Id
问题是我遇到了以下id不匹配的情况:
表1:
+-----------+------------+------------+------------+
| record_id | A | B | C |
+-----------+------------+------------+------------+
| 180 | some value | some value | some value |
| 214 | some value | some value | some value |
| 243 | some value | some value | some value |
+-----------+------------+------------+------------+
表2:
+-----------+------------+
| record_id | D |
+-----------+------------+
| 5798 | some value |
| 6135 | some value |
| 6135 | some value |
+-----------+------------+
表3(与表1和表2相关):
预期结果:
+-----------+------------+------------+------------+-----------+------------+
| record_id | A | B | C | record_id | D |
+-----------+------------+------------+------------+-----------+------------+
| 180 | some value | some value | some value | 5798 | some value |
| 214 | some value | some value | some value | 6135 | some value |
| 243 | some value | some value | some value | 6135 | some value |
+-----------+------------+------------+------------+-----------+------------+
有人知道我如何获得所需的结果吗?因此,如果您希望根据表3将所有数据合并在一起,则查询中的合并条件看起来不正确(基于示例数据):
+-----------+------------+------------+------------+-----------+------------+
| record_id | A | B | C | record_id | D |
+-----------+------------+------------+------------+-----------+------------+
| 180 | some value | some value | some value | 5798 | some value |
| 214 | some value | some value | some value | 6135 | some value |
| 243 | some value | some value | some value | 6135 | some value |
+-----------+------------+------------+------------+-----------+------------+
select a.* , b.*
from table3 c
join table1 a on a.record_id = c.table1_id
join table2 b on b.record_id = c.table2_id