如何匹配两个不同表中的列并将选定的列输出到 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 中的第三个表?的主要内容,如果未能解决你的问题,请参考以下文章

SQL - 在同一个表中匹配相同的值,不同的列

使用 Spring Jpa 从两个或多个表中获取选定的列

两个文件中的AWK列匹配,打印不同的列

powerbi中如何再度量值中提取虚拟表中的列

Laravel:如何查询包含json数据的表中的列并仅返回查询匹配的对象

如何使具有数据类型不匹配的列无效