46
select outcomes.ship, classes.displacement, classes.numguns from classes join outcomes on classes.class=outcomes.ship and outcomes.battle='Guadalcanal'
union
select outcomes.ship, classes.displacement, classes.numguns from (ships join classes on ships.class=classes.class) right join outcomes on
outcomes.ship=ships.name where outcomes.battle='Guadalcanal' and outcomes.ship not in (select outcomes.ship from classes join outcomes on classes.class=outcomes.ship and outcomes.battle='Guadalcanal')