小编典典

使用设置代数的SELECT语句

sql

有这两个表:

DNAME
-----------
RESEARCH
   IT
 SCIENCE

部门

DNAME       LOCATION
----------------------
RESEARCH      BOSTON
   IT         LONDON
RESEARCH      DALLAS
 SCIENCE      BOSTON

我的问题是找到DNAME仅位于波士顿或伦敦但不在两个城市都位于的地方。

我正在使用以下查询:

SELECT D.DNAME 
FROM DEPARTMENT D 
INNER JOIN DEPTLOC L ON L.DNAME = D.DNAME 
WHERE L.CITY='BOSTON' OR L.CITY='DALLAS'
GROUP BY D.DNAME
HAVING COUNT(1) = 1;

它可以工作,但是我不认为这是正确的,因为我的问题表明:

"Implementing set algebra SELECT statements"

那么,为了使用正确的语句获得正确的结果,我应该改变什么?输出应该像这样:

   DNAME
-----------
    IT
  SCIENCE

阅读 237

收藏
2021-04-15

共1个答案

小编典典

如果我在那里猜你被要求提供使用集合操作等的溶液UNIONINTERSECTDIFFERENCE (MINUS or EXCEPT)。如果A是位于波士顿的部门,而B是位于伦敦的部门,则(A-B)U(B-A)是一种解决方案

2021-04-15