我想知道是否可以使用Intersect编写以下请求并存在关键字。我的老师要求我解决一个问题,但我设法这样做。
使用的技术是Oracle。
表:
COMPUTER(id, name, ip, type, room, softwares)
INSTALLATION (id_computer, id_software, installation_date)
SOFTWARE(id, name, purschase_date, version, type, installations)
一些行:
c1, computer 1, 192.168.1.1 UNIX, 3, 5 (COMPUTER TABLE)
c1, s1, 21/11/16 (INSTALLATION TABLE)
s1, Notepad++, 05/04/98, 2.0, UNIX, 3 (SOFTWARE TABLE)
问题是要通过使用InterSect和存在的计算机6" C6"至少安装了一个相同软件的计算机名称。
到目前为止,这是有效的,但没有回答以下问题:
SELECT DISTINCT id_computer
FROM INSTALLATION
WHERE id_software IN (
SELECT id_software
FROM INSTALLATION
WHERE id_computer = 'c6'
) AND id_computer <> 'c6';
感谢您的回答。
尝试此
SELECT DISTINCT id_computer
FROM INSTALLATION bb
WHERE exists (
SELECT 1
FROM INSTALLATION aa
WHERE aa.id_computer = 'c6'
and aa.id_software=bb.id_software
) AND id_computer <> 'c6';