在一个公共值上合并结构不同的MySQL表



我正试图基于共享值将两个表连接到一个新表,但运气不佳。这是我得到的。

表1:

id        |name     |
----------|---------|
1         |test1    |

表2:

id        |name     |location |color    |
----------|---------|---------|---------|
1         | test1   |  10     |  blue   |

我想要的是一个新表(表3),它从表1中获取"name",并将其与表2中的name进行匹配,然后将匹配结果粘贴到表3中。任何与表1不匹配的内容都应被忽略。所以,如果我在表2中有"test99",但在表1中没有,不要把它放在表3中。

我读到的所有东西都说这应该不难做到,但我只是运气不好。

谢谢!

尝试

SELECT Table2.Name, Table2.Location, Table2.Colour
FROM Table2
INNER JOIN Table1 ON Table2.Name = Table1.Name

虽然我注意到你有Id,可能被认为是你的主键和外键?如果是,请尝试

SELECT Table2.Name, Table2.Location, Table2.Colour
FROM Table2
INNER JOIN Table1 ON Table2.Id= Table1.Id 

您可以在表中进行选择。

Select * INTO Table3
FROM Table2 
WHERE Table2.Name IN (SELECT Name FROM Table1)

或者您可以使用INSERT。。。SELECT-语法并使用JOIN。

INSERT INTO table3 (id, name, location, color)
SELECT t.id, t2.name, t.location, t.color FROM table1 AS t JOIN table2 AS t2 ON t2.id = t1.id

最新更新