我一直在研究这个问题一段时间,但我不知道该怎么做。
我有一个包含多个连接的庞大 SQL 查询,它给了我数十万条记录,这非常完美。
然后我意识到我在另一个表中有 200 多条记录需要添加到第一个表中。
第一张表:
字段 1 字段 2 字段 3 约翰·史密斯 23 波士顿 穆罕默德·阿里 45 纽约 斯蒂芬妮·约翰逊 15 洛杉矶
新表
字段 1 其他字段 1 其他字段 2 Mark Khoury 空 null
所以我真的只需要将表 2 中的 Field1 值添加到第一个的“底部”。我在第一个查询中所做的所有连接也应该适用于表 2 中的值。
联合将不起作用,因为我只有要添加的列。我必须从第一个表中复制粘贴相同的查询才能从第二个表的值中获取“Field2”和“Field3”。
我希望它看起来像:
字段 1 字段 2 字段 3 约翰·史密斯 23 波士顿 穆罕默德·阿里 45 纽约 斯蒂芬妮·约翰逊 15 洛杉矶 马克·库里 65 休斯顿
我该怎么做呢?我不想“加入”表格,我想将它们联合起来,但只用一列。
这是我的意思的一个例子:
表一是通过执行以下操作创建的:
SELECT table.value1 as Field1, table2.value2 as Field2, table3.value3 as Field3
FROM some_table as table
LEFT OUTER JOIN some_other_table as Table2 ON table.field = table2.field5
LEFT OUTER JOIN a_third_table as table3 ON table2.field2 = table3.field4
但现在我有更多 Field1 值的 newTable,我需要将这些值添加到第一个表中。
我试过这个:
SELECT COALESCE(table.value1, NewTable.value) as Field1, table2.value2 as Field2,
table3.value3 as Field3
FROM some_table as table
LEFT OUTER JOIN some_other_table as Table2 ON table.field = table2.field5
LEFT OUTER JOIN a_third_table as table3 ON table2.field2 = table3.field4, newTable
但这给了我指数级的结果,它应该给我几百个。