Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 不与子查询一起使用_Sql_Sql Server_Subquery - Fatal编程技术网

Sql 不与子查询一起使用

Sql 不与子查询一起使用,sql,sql-server,subquery,Sql,Sql Server,Subquery,我被要求在sql server数据库中显示以下问题的结果 哪些软件包未安装在任何HP计算机上? 我尝试了以下方法,但我仍然得到了PACKNAME Manta的结果,但该软件包安装在HP计算机上。我错过了什么 我在下面附上了数据的图像供您参考 您可以将不存在与相关子查询一起使用,该子查询将其他表连接在一起,并包含您的筛选条件: select pk.pack, pk.packname, pk.packv, pk.packtype, pk.packcost from package pk where

我被要求在sql server数据库中显示以下问题的结果

哪些软件包未安装在任何HP计算机上? 我尝试了以下方法,但我仍然得到了PACKNAME Manta的结果,但该软件包安装在HP计算机上。我错过了什么

我在下面附上了数据的图像供您参考


您可以将
不存在
与相关子查询一起使用,该子查询将其他表连接在一起,并包含您的筛选条件:

select
pk.pack,
pk.packname,
pk.packv,
pk.packtype,
pk.packcost
from package pk
where not exists (
                    select 1
                    from software s
                    inner join pc on pc.tagnum = s.tagnum
                    inner join computer c on c.comp = pc.comp
                    where s.pack = pk.pack
                    and c.mfrname = 'HP'
                 )
order by pk.pack;
结果

| pack |         packname | packv |        packtype | packcost |
|------|------------------|-------|-----------------|----------|
| AC11 | Quick Accounting |   4.1 |      Accounting |   754.95 |
| AC12 |   Accounting MIS |   4.0 |      Accounting |     2000 |
| AC13 |        Quickbook |  2005 |      Accounting |      300 |
| DB11 |            Manta |   1.5 |        Database |      380 |
| DB13 |       SQL Server |  2005 |        Database |      500 |
| DB14 |           My SQL |  2005 |        Database |      300 |
| SS11 |          Easycal |   5.5 |     Spreadsheet |   225.15 |
| WP04 |       Word Power |     2 | Word Processing |      118 |
| WP07 |        Good Word |   3.2 | Word Processing |       35 |
| WP14 |           GOOGLE |     2 | Word Processing |      118 |

谢谢您的及时回复,但我仍然收到一个列表中有PACKNAME MANTA的结果。那么它一定在列表中了。你检查过了吗?是的。Manta安装在与包DB22关联的HP计算机上,但问题的措辞是,它正在查找所有未安装在任何HP计算机上的包。这看起来像是某种
作业。在我们尝试帮助您进行查询之前,您是否必须使用或不能使用任何特定的查询方法?我被告知只使用子查询。回答“某物不存在”问题的任何查询通常最好使用不存在(子查询)模式。使其真正易于理解,并且通常运行效率高。我会研究它。mysql还是sql server?这是针对Microsoft SQL server management studio 17的
select
pk.pack,
pk.packname,
pk.packv,
pk.packtype,
pk.packcost
from package pk
where not exists (
                    select 1
                    from software s
                    inner join pc on pc.tagnum = s.tagnum
                    inner join computer c on c.comp = pc.comp
                    where s.pack = pk.pack
                    and c.mfrname = 'HP'
                 )
order by pk.pack;
| pack |         packname | packv |        packtype | packcost |
|------|------------------|-------|-----------------|----------|
| AC11 | Quick Accounting |   4.1 |      Accounting |   754.95 |
| AC12 |   Accounting MIS |   4.0 |      Accounting |     2000 |
| AC13 |        Quickbook |  2005 |      Accounting |      300 |
| DB11 |            Manta |   1.5 |        Database |      380 |
| DB13 |       SQL Server |  2005 |        Database |      500 |
| DB14 |           My SQL |  2005 |        Database |      300 |
| SS11 |          Easycal |   5.5 |     Spreadsheet |   225.15 |
| WP04 |       Word Power |     2 | Word Processing |      118 |
| WP07 |        Good Word |   3.2 | Word Processing |       35 |
| WP14 |           GOOGLE |     2 | Word Processing |      118 |