【发布时间】:2017-06-18 13:30:03
【问题描述】:
我有两张桌子。表一有 3 个类别列。表 2 有 2 个类别列。我尝试编写一个比较此类别列的查询,并向我显示数据位于表 1 的三列之一中,但不在表 2 的两列之一中。
例如
表 1
ID 产品 cat1 cat2 cat3 10001 产品 a A B C 10001 产品 D E NULL 10001 产品 a F G H 10002 产品 b B C D ……………………表 2
ID 产品 cat1 cat2 10001 产品 a D E 10001 产品一个 D F 10001 产品一个 G A 10002 产品 b A C ……………………查询的输出应该是这样的:
product_id not_in_cat 10001乙 10001℃ 10001 小时 10002乙 10002 天但我不知道如何实现它。我尝试使用子查询和“NOT IN”命令来做到这一点。但是这样我得到了很多子查询,对于 t1.cat1 - t2.cat1、t1.cat2 - t2.cat2 等的每个组合。 这样我只得到了不在同一行的猫。
也许有人可以帮我弄清楚,哪种方式最能达到预期的效果。 该查询在 MS SQL Server 上执行,并带有对 MySQL 和 oracle db 服务器的 openquery。但我认为这更像是一个逻辑问题。
【问题讨论】: