【发布时间】:2014-03-21 09:17:47
【问题描述】:
好的,这有点难以解释,但我会尽力而为。
我有两张桌子,我们称它们为 table1 和 table2。 table1 看起来像这样:
ID | CampaignID | Package | GroupID
1 | 1 | 1 | 1
2 | 1 | 1 | 2
3 | 1 | 2 | 2
4 | 2 | 1 | 3
5 | 2 | 2 | 3
6 | 2 | 3 | 3
等
Table2 看起来像这样:
ID | ClientID | ClientName | Package | OrderID
1 | 1111 | John Smith | 1 | 155
2 | 1111 | John Smith | 2 | 155
4 | 2222 | Dave Jones | 1 | 177
5 | 2222 | Dave Jones | 2 | 178
6 | 2222 | Dave Jones | 3 | 179
我正在尝试做的是,例如,看看 John Smith 是否有任何包含与表 1 中的一个活动组匹配的包集的订单。对于上面的示例,John Smith 的订单 155 将匹配 CampaignID 1、GroupID 2。Dave Jones 的订单 177 匹配 CampaignID 1、GroupID 1。但是订单 178 和 179 不匹配任何内容。因此,订单中的每组包都需要包含给定组的所有包才能匹配它
出于选择语句的目的,我有客户的 id 和 orderID,我只是想看看他订单中的包裹是否符合任何活动的标准。
我知道我可能没有很好地解释这一点,所以让我知道需要澄清什么。
编辑:
如果假设我们搜索 orderID 155、clientID 1111,那么所需的结果将是:
CampaignID | GroupID
1 | 2
也许考虑到 GroupID 1 也符合条件,它可以返回符合最大数量包的 groupID。
【问题讨论】:
-
请澄清一下,
Table1和Table2之间的关系是什么?Package或ID或其他? -
对于 John Smith 的订单,为什么 GroupID 1 不匹配?这些表似乎仅通过 Package 列连接?以表格形式添加所需的结果。顺便说一句,您的表格未标准化。阅读它并更改您的数据库设计肯定是一个好主意。
-
ClientID和GroupID之间有没有关系你没有表达? -
如果 orderID 155,clientID 1111,那么为什么是 CampaignID |组ID 1 | 2.请校准
-
也许考虑到 GroupID 1 也符合条件.....为什么只使用 Group 1?第 3 组也有资格。
标签: sql