MySQL:比较两个表,并找到匹配的数据/第一个匹配的列第一个表

问题描述:

我有销售数据,其中包含Cust_ID,Invoice_Date,发票,Item_Number(和其他很多字段)。此表为每个客户的发票有多个记录,因为每个记录包含不同的Item_Number信息。我们称这个表为sales_main。MySQL:比较两个表,并找到匹配的数据/第一个匹配的列第一个表

我有第二张表,只包含上面提到的三个字段,即Cust_ID,Invoice_Date和发票。该表只包含每个客户的一行。我们称这个表为sales_filter。

我想要做的事实质上是使用第二个表作为第一个过滤器,以便仅保留sales_main(及其所有列)中sales_filter和sales_main中的Cust_ID,Invoice_Date和Invoice列所在的行为完全匹配。

所以,如果sales_filter有一排包含:

“1024”,“24/02/2016”,533

和sales_main有符合这三个条件的四排,返回所有四行在结果集中。 sales_main中的任何其他行都与sales_filter的任何行中的所有三列完全匹配。

但我只是不知道用什么代码来做到这一点!

+0

使用所需的字段与内部联接sales_filter表数据和 –

你需要加入基于这些3列这两个表,然后将返回所有的记录与匹配条件

select * from sales_main sm join sales_filter sf on (sm.Cust_ID=sf.Cust_ID and sm.Invoice_Date=sf.Invoice_Date and sm.Invoice=sf.Invoice) 

你可以选择任何你选择

+0

完美的作品只提取sales_main表列,谢谢! –