我看到过类似的问题,但这略有不同。使用先前提出的问题中的建议,我无法获得预期的结果。如果这以任何方式不清楚,我深表歉意。如果您需要任何澄清,请随时询问...
我有一个 SOFTWARE 表,其中显示了可以安装的每种类型和版本的软件。有一个 MACHINE 表,其中列出了所有机器(对此不太重要......)。还有一个 MACHINE_SOFTWARE 表,它只列出一个 MACHINE_ID 和一个 SOFTWARE_ID。所以 MACHINE_SOFTWARE 表可能会显示机器 1 和软件 1,机器 1 和软件 4,机器 1 和软件 5,机器 2 和软件 1,机器 2 和软件 2,等等......
我正在编写一个查询,它将为每台机器显示四个特定软件的软件版本。
因此,对于每个 MACHINE_ID,我需要查看 SOFTWARE.VERSION 字段 4 次。
这是我无法正常工作的:
SELECT MS.MACHINE_ID, A.VERSION AS A_VERSION, B.VERSION AS B_VERSION, C.VERSION AS C_VERSION, D.VERSION AS D_VERSION
FROM MACHINE_SOFTWARE MS
LEFT JOIN SOFTWARE A ON MS.SOFTWARE_ID = A.ID AND A.DISPLAY_NAME LIKE 'SoftA%'
LEFT JOIN SOFTWARE B ON MS.SOFTWARE_ID = B.ID AND B.DISPLAY_NAME LIKE 'SoftB%'
LEFT JOIN SOFTWARE C ON MS.SOFTWARE_ID = C.ID AND C.DISPLAY_NAME LIKE 'SoftC%'
LEFT JOIN SOFTWARE D ON MS.SOFTWARE_ID = D.ID AND D.DISPLAY_NAME LIKE 'SoftD%'