我有一个包含 16 个表的数据库,但只有四个与此相关。该数据库跟踪不同的服务器、服务器信息(CPU、RAM、IP 地址等)以及它正在运行的软件。软件和机器通过连接表关联。
CREATE TABLE machsoftjt (
mid int(4) NOT NULL,
sid int(4) NOT NULL,
slid int(4) NOT NULL,
notes varchar(255) default NULL,
UNIQUE KEY mid (mid,slid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
mid是机器表中的机器ID,sid是软件表中的软件ID,其中包含软件名称和软件版本,slid是softlist表中的软件列表ID(仅列出正在运行和使用的软件的表用于唯一约束,以便在执行软件升级时,我没有一台机器运行同一软件的两个不同版本的条目)。因此,如果我有 machine1(中间值为 1)运行 Microsoft Word 2010(sid 为 1,slid 为 1)和 Adobe Photoshop 5(sid 为 2,slid 为 2),表格将
mid sid slid
1 1 1
1 2 2
我想从这个表中选择所有运行 Microsoft Word 和 Adobe Photoshop 的机器。
SELECT machines.machinename FROM (machines INNER JOIN machsoftjt ON
machines.mid=machsoftjt.mid) INNER JOIN software ON machsoftjt.sid=software.sid
WHERE machsoftjt.slid='1' AND machsoftjt.slid='2'
当我运行这个查询时,我没有得到任何回报当我运行这个查询时,我没有得到任何回报。我现在很困惑,想不出别的办法。所有帮助将不胜感激。