如何匹配两个不同表中的列并将选定的列输出到 MySQL 中的第三个表?
Posted
技术标签:
【中文标题】如何匹配两个不同表中的列并将选定的列输出到 MySQL 中的第三个表?【英文标题】:How can I match columns in two different tables and output selected columns to a third table in MySQL? 【发布时间】:2020-08-05 23:00:47 【问题描述】:我目前在 mysql 中有三个表,我希望前两个表中匹配的 UPC 值将表 2 中的其他内容输出到表 3。我制作了下表,说明我希望它们如何输出.
Table 1
|-------------------|
| UPC |
|-------------------|
| 123456789851 |
|-------------------|
| 123456789789 |
|-------------------|
| 123456789765 |
|-------------------|
Table 2
|-------------------|--------------|------------|---------------|
| UPC | Shelf | Isle | ItemName |
|-------------------|--------------|------------|---------------|
| 123456789851 | C | 1 | Eggs |
|-------------------|--------------|------------|---------------|
| 123456789789 | A | 1 | Milk |
|-------------------|--------------|------------|---------------|
| 123456789765 | D | 2 | Coffee |
|-------------------|--------------|------------|---------------|
| 123456789582 | A | 5 | Apple Juice |
|-------------------|--------------|------------|---------------|
| 123456789542 | S | 2 | Cereal |
|-------------------|--------------|------------|---------------|
如果表 1 中的 UPC 与表 2 中的 UPC 匹配,则将除 UPC 之外的所有内容输出到表 3
Table 3
|--------------|------------|---------------|
| Shelf | Isle | ItemName |
|--------------|------------|---------------|
| C | 1 | Eggs |
|--------------|------------|---------------|
| A | 1 | Milk |
|--------------|------------|---------------|
| D | 2 | Coffee |
|--------------|------------|---------------|
【问题讨论】:
您应该拥有您的表格和预期的结果。你还没有展示你的尝试。 【参考方案1】:将Table1
加入Table2
,以便插入匹配的行:
INSERT INTO Table3(Shelf, Isle, ItemName)
SELECT t2.Shelf, t2.Isle, t2.ItemName
FROM Table2 t2 INNER JOIN Table1 t1
ON t1.UPC = t2.UPC
或EXISTS
:
INSERT INTO Table3(Shelf, Isle, ItemName)
SELECT t2.Shelf, t2.Isle, t2.ItemName
FROM Table2 t2
WHERE EXISTS (SELECT 1 FROM Table1 t1 WHERE t1.UPC = t2.UPC)
【讨论】:
以上是关于如何匹配两个不同表中的列并将选定的列输出到 MySQL 中的第三个表?的主要内容,如果未能解决你的问题,请参考以下文章