Como comparar um valor com um valor que corresponde a outro valor?

0

Pergunta

Eu tenho uma tabela:

Table 1
pizza     |price|country|base
-----------------------------------
americano | 2   | U.S   | wholemeal
funghi    | 3   | Italy | wholemeal
sicilliano| 7   | Italy | wholemeal

Eu preciso de uma lista de todos os pizza elementos, que têm o mesmo country elemento, como sicilliano pizza, não usando uma subconsulta.

mysql
2021-11-24 00:48:27
1

Melhor resposta

1

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

2021-11-24 08:56:30

Posso pedir mais algumas explicações? Tentei ler esses manuais no entanto, eu não consigo entender isso.
czarniecki

eu adicionei algumas explicações, em geral, mostram toda a coluna e então você vê betrer que uma associação faz ou a cláusula where
nbk

E se eu quiser listar todas as pizzas, que têm preços mais altos, do que um específico? SELECIONE t2.pizza a PARTIR do menu t1 INNER JOIN menu t2 t1.preço = t2.preço ONDE t1.preço > 'americano'; eu tentei algo como isso, mas obviamente, você não pode comparar a seqüência de inteiros
czarniecki

é o mesmo com um subquerz zou precisa selecionar o preço de americano, com as zou necessidade de se juntar a outra tabela que filtra everzthing que é menor, dar-lhe um trz ou fazer outra pergunta, agora você tem um violino link que você pode adicionar
nbk

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................