INNER JOIN
a mesma tabela, consulte o manual sobre a ASSOCIAÇÃO
Como você não quer subconsulta, você circumvnt, usando join, quando você executar
SELECT t1.*,t2.* FROM Table1 t1 INNER JOIN Table1 t2 ON t1.`country` = t2.`country`
Você vê tat para sempre no país linha t1 você encontra uma linha de t2.
Assim, para siziliano em t1-lhe obter funghi e siziliano em t2.
O resto é a redução de todos os t2 linhas, para o que você precisa
CREATE TABLE IF NOT EXISTS Table1 (
`pizza` VARCHAR(10),
`price` INTEGER,
`country` VARCHAR(5),
`base` VARCHAR(9)
);
INSERT IGNORE INTO Table1
(`pizza`, `price`, `country`, `base`)
VALUES
('americano', '2', 'U.S', 'wholemeal'),
('funghi', '3', 'Italy', 'wholemeal'),
('sicilliano', '7', 'Italy', 'wholemeal');
SELECT t2.`pizza` FROM Table1 t1 INNER JOIN Table1 t2 ON t1.`country` = t2.`country` WHERE t1.`pizza` = 'sicilliano'
| pizza |
| :--------- |
| funghi |
| sicilliano |
db<>mexer aqui