INNER JOIN
stessa tabella, vedere manuale su JOIN
Come non vuoi sottoquery, è circumvnt di esso, utilizzando join, quando si esegue
SELECT t1.*,t2.* FROM Table1 t1 INNER JOIN Table1 t2 ON t1.`country` = t2.`country`
Si vede tat per sempre il paese di riga in t1 si trova una fila da t2.
Così, per siziliano in t1 si ottiene funghi e siziliano in t2.
Il resto è la riduzione di tutti t2 righe, di quelli di cui hai bisogno
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<>violino qui