日期:2014-05-19  浏览次数:20933 次

一道两个字段的SQL语句
有一个表“水果供应商”
字段1“供应商”   字段2“水果”
两个字段共为主键
数据库里的格式如下:
A   苹果
A   桔子
B   苹果
B   香蕉
  。
  。
  。
现在     A供应商   不干了
求出   所有能替代   A供应商   的   供应商名单(既供应商A   能供应的所有水果,名单上的每一个供应商都能   独立供应)

------解决方案--------------------
不对

SELECT 供应商
FROM 水果供应商 t1
WHERE EXISTS
(
SELECT 1
FROM 水果供应商 t2
WHERE t2.供应商 = 'A ' AND t2.水果 = t1.水果
)
AND 供应商 != 'A '
GROUP BY 供应商
HAVING COUNT(*) = (SELECT COUNT(*) FROM 水果供应商 WHERE 供应商 = 'A ')