我有两个表,其中包含以下模式和数据
(
sale_id VARCHAR(18),
list_of_email_addresses VARCHAR(8000)
);
INSERT INTO sales (sale_id, list_of_email_addresses) VALUES ('12345', 'darba@snug.net, minty@snugs-canada.net, gravy@snugs.uk');
INSERT INTO sales (sale_id, list_of_email_addresses) VALUES ('12346', 'tinto@muse.com, muscles@muse.net, garbo@muse.net');
INSERT INTO sales (sale_id, list_of_email_addresses) VALUES ('12347', 'slick@bang.org, rick@bang.org, racer@bang.org');
CREATE TABLE accounts (
account_id VARCHAR(18),
domain_name VARCHAR(255));
INSERT INTO accounts ('A-000001', 'canada.ca');
INSERT INTO accounts ('A-000002', 'thisfuntime.com');
INSERT INTO accounts ('A-000003', 'bang.org');
INSERT INTO accounts ('A-000004', 'snug.net');
我希望标识Sales表中不具有BUSICE_DOMAIN_NAME部分匹配的帐户的记录,例如,我希望查找不具有匹配的DOMAIN_NAME字段的所有销售记录,也就是说,如果我可以成功执行连接,它将返回
'12346', 'tinto@muse.com, muscles@muse.net, garbo@muse.net'
注意:我们不会返回Sales_id=12345,b/c Snug.net匹配帐户A-000004的Sales行,因为没有任何帐户带有‘muse.com’或‘muse.net’-因此它是Any匹配,而不是All.
我们可以问相反的问题,哪些客户没有任何与其相关联的销售,这将返回
'A-000001', 'canada.ca'
'A-000002', 'thisfuntime.com'
我不能用Like Any这样做,因为我一次只能匹配一条记录,而且它只适用于单条记录.
不能 Select 获取Sales表并分解它,这样我们每个邮箱地址就会得到一行.在上面的例子中,我想排除任何与Sales_id=‘12345’匹配的销售,因为我正在try 排除任何对Snugs的销售,并且所有这些邮箱地址都与同一家公司相关联--但我必须使用的底层数据模型被打破了--每个这些"Sneg"帐户都与不同的公司相关联,即使它们实际上是同一家公司.
这说得通吗?