我正在使用 ColdFusion 8 开发我公司的网站,并希望从一个表 ( ) 中返回一个记录列表(只是clientname
字段),该表 ( dbo.clients
) 在不同的表 ( ) 中没有匹配项,dbo.fees
以提示最终用户添加这些公司的收费表。一个例子:
dbo.clients
CLIENT_ID CLIENT_NAME
1 Joe's Diner
2 Save-a-Lot
3 Family Meds
4 DiFazio's
dbo.fees
CID CLIENT_NAME FEE
1 Joe's Diner 25.000
2 Save-a-Lot 35.000
4 DiFazio's 30.000
我想要的是一个结果集,在上述表格/数据的情况下,将仅返回 clientid/clientname 3/Family Meds,因为它们没有在表格中列出/记录费用dbo.fees
。我的数据库是 MSSQL 2005。我的查询是:
SELECT clientid
FROM clients
INNER JOIN fees
ON clients.clientid <> fees.cid;
它返回 50,000 多个结果的笛卡尔积。使用LEFT/RIGHT OUTER JOIN
仍然给我一个笛卡尔积,并DISTINCT
简单地返回每条记录,dbo.clients
无论它们是否有dbo.fees
条目。我究竟做错了什么?
ps 另外值得注意的是:我之前的管理员显然没有在客户/费用表之间建立 PK/FK 关系,因此任何可能依赖的查询语法在这种情况下都可能不起作用。它可能必须仅基于相关字段的值来工作。