首页 > 解决方案 > 如何匹配两个不同表中的列并将选定的列输出到 MySQL 中的第三个表?

问题描述

我目前在 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    |                 
    |--------------|------------|---------------|                  

标签: mysqljoinmysql-workbench

解决方案


加入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)

推荐阅读