当前位置: 首页 > 知识库问答 >
问题:

除了命令-找到已经预订了所有船只的水手

谭铭
2023-03-14

我在读教科书,我不明白这个问题:找到预订了所有船只的水手。

    null
SELECT  S.sname
FROM  Sailors S
WHERE  NOT EXISTS 
          ((SELECT  B.bid
             FROM  Boats B)
            EXCEPT
             (SELECT  R.bid
              FROM  Reserves R
              WHERE  R.sid=S.sid))

我的问题是:

>

  • 上面的查询有问题吗?当我把它放入MySQL工作台时,它显示我在EXCEPT中有语法错误

    除了上面书中给出的解决方案之外,还有其他的方法可以进行查询吗:找到预订了所有船只的水手

  • 共有1个答案

    秦弘亮
    2023-03-14

    您可以使用COUNT和CONCAT来完成此操作。该查询选择与boat表中的每艘船配对的水手(在Reserve表中):

    SELECT Sailors.name
    FROM Sailors INNER JOIN
    (SELECT Reserves.sid
     FROM Reserves
     GROUP BY Reserves.sid
     HAVING COUNT(DISTINCT CONCAT(Reserves.sid, Reserves.bid)) =
     (SELECT COUNT(DISTINCT Boats.bid)
      FROM Boats)) sub
    ON Sailors.sid = sub.sid
    

    在此测试:http://sqlfiddle.com/#!9/82005/2

     类似资料:
    • 我在MyBatis中使用了Spring,它在单个数据库中运行得非常好。我在尝试添加另一个数据库时遇到了困难(请参见Github上的可复制示例)。 你能看出我哪里出了问题吗?

    • 岗位:嵌入式软件 base连云港 时间线: 9.6线下招聘会投递简历 9.7专业技术面(电话面试) 9.11综合面试(腾讯会议视频面试) 【专业技术面20min】 1、个人自我介绍 2、询问个人情况和项目细节,包括期望工作地、婚姻情况、研究生研究方向、对freertos rt-thread的了解、项目中主要负责工作 3、面试官介绍研究所情况 4、反问环节 【综合面试20min】 1、自我介绍 2、

    • 我收集了一些注册过的数据 { _id: 0000120210903, iid: 00001, date: 20210903 }, { _id: 0000220210903, IID: 00002, date: 20210903 }, { _id: 0000120210101, IID: 00001, date: 20210101 } 我想删除除每个iid的最新日期的文档之外的所有文档。 我的想法是

    • git结账也挂着,什么都没发生。 我不知道怎么解决这个问题。我运行了git prune、git gc和git fsck--无法访问。当我运行git fsck时,什么也没有显示--无法访问或git fsck,而当我运行git prune时,它只是完成了,但什么也没有修复。Git gc也完成了,但没有修复任何内容。 编辑:通过重新启动我的计算机解决了此问题。我不知道为什么它修复了它,或者是什么导致了这

    • 问题内容: 是否已经有指令在画布上绘制/绘画东西?因此,您可以实现诸如Paint或什至更大的诸如Photoshop等之类的东西,但是一个非常基本的示例就足够了。 我没有在搜索中找到一个,如果已经有一个被认为是最佳实践,我想使用它。否则我必须自己实施。 问题答案: 好的,我做了一个,实际上很简单: 然后您可以像下面这样在画布上使用它: 这是有关Plunkr 的 演示 :http ://plnkr.c

    • 我将anaconda3安装到了我的主目录中。这就是我在航站楼看到的: 我的。bash_profile看起来像这样: 导出路径= "/Users/spotter/anaconda 3/bin:$ PATH " 所以我不明白为什么无法识别conda。当我导航到anaconda3/bin时,那里有一个名为的文件,但即使我尝试在该路径中调用它,它仍然找不到。