以下是关于战舰及其参与的战斗的示意图:
Ships(name, yearLaunched, country, numGuns, gunSize, displacement)
Battles(ship, battleName, result)
一个典型的 Ships 元组是:
('New Jersey', 1943, 'USA', 9, 16, 46000)
这意味着新泽西号战列舰于1943年下水;它属于美国,携带 9 门 16 英寸(口径或枪管内径)的火炮,重 46,000 吨。Battles 的典型元组是:
('Hood', 'North Atlantic', 'sunk')
也就是说,HMS Hood 在北大西洋海战中沉没。其他可能的结果是“正常”和“损坏”
问题:列出所有在战斗中相互交战的国家对。每对只列出一次,并以字母顺序排在第一位的国家列出
答:我写了这个:
SELECT
a.country, b.country
FROM
ships a, ships b, battles b1, battles b2
WHERE
name = ship
and b1.battleName = b2.battleName
and a.country > b.country
但它说的列名不明确。我该如何解决?提前致谢