Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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_Ms Access - Fatal编程技术网

Sql 使用多个选项查找相关记录

Sql 使用多个选项查找相关记录,sql,ms-access,Sql,Ms Access,我不知道该如何命名这个问题。我试图解释我需要达到的目标 我将从我们的客户那里得到一份清单,其中列出了每台机器上安装的软件 示例 机器清单 Hostname SW PC001 SW001 PC001 SW002 PC002 SW003 PC002 SW001 PC003 SW003 软件列表 SW Name Status SW001 not okay SW002 not okay SW003 ready 我需要一个SQL或M

我不知道该如何命名这个问题。我试图解释我需要达到的目标

我将从我们的客户那里得到一份清单,其中列出了每台机器上安装的软件

示例 机器清单

Hostname  SW
PC001     SW001
PC001     SW002
PC002     SW003
PC002     SW001
PC003     SW003
软件列表

SW Name   Status
SW001     not okay
SW002     not okay
SW003     ready
我需要一个SQL或MS Access logik来查找所有主机名,这些主机名只安装了状态为OK的软件

另外,我需要一个逻辑来告诉我什么样的软件产品需要正常,才能在只安装了正常软件的情况下提供额外的主机名

目前,我正在努力回答这个问题

rgds
Sebastian目前我不确定如何选择一个主机名可以包含的多个行作为一个整体-因此如果我使用select语句,我会在安装指定产品的位置获取所有主机名-但其他安装的产品不会反映出来。

我可以帮你一点忙,但你必须自己做些事情

首先,我先修改了你的DDL代码

CREATE TABLE `machines` (
 `id` int(11) NOT NULL,
 `hostnames` varchar(20) NOT NULL,
 `id_soft` int(11) NOT NULL
)


CREATE TABLE `software` (
 `id_soft` int(11) NOT NULL,
 `software_name` varchar(20) NOT NULL,
  `status` varchar(20) NOT NULL
)
--

--表
机器的索引
--

--表
软件的索引
--

--表
机器的约束
这是您的查询,仅在状态为OK或ready时显示主机名

SELECT hostnames
FROM machines
LEFT JOIN software on machines.id_soft = software.id_soft
WHERE machines.id_soft = (SELECT software.id_soft from software 
            WHERE software.status like 'ready');

所以这肯定会帮助你,但你必须独自做其他事情,只有当你找不到解决方案时,我们才会在这里帮助你

如果我没弄错的话,你所要做的就是进行sql查询,这些查询将为你提供相关的数据。写一些查询并展示给我们。你需要努力。
 ALTER TABLE `software`
 ADD PRIMARY KEY (`id_soft`);
 ALTER TABLE `machines`
 ADD CONSTRAINT `machines_ibfk_1` FOREIGN KEY (`id_soft`) REFERENCES 
`software` (`id_soft`);
SELECT hostnames
FROM machines
LEFT JOIN software on machines.id_soft = software.id_soft
WHERE machines.id_soft = (SELECT software.id_soft from software 
            WHERE software.status like 'ready');