INNER JOIN
la misma mesa, consulte el manual acerca de UNIRSE a
Como usted no quiere subconsulta, que circumvnt que, mediante join, cuando se ejecuta
SELECT t1.*,t2.* FROM Table1 t1 INNER JOIN Table1 t2 ON t1.`country` = t2.`country`
Ver tat para siempre el país de la fila en la t1 encontrar una fila de t2.
Así que para siziliano en la t1 obtener funghi y siziliano en t2.
El resto es la reducción de todos los t2 filas, a las que usted necesita
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 |
| :--------- |
| hongos |
| sicilliano |
db<>violín aquí