Comment comparer une valeur, une valeur qui correspond à une autre valeur?

0

La question

J'ai une table:

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

J'ai besoin de la liste de tous les pizza éléments, qui ont le même country élément, comme sicilliano pizza, pas en utilisant une sous-requête.

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

La meilleure réponse

1

INNER JOIN de la même table, voir le manuel à propos de les REJOINDRE

Comme vous ne voulez pas sous-requête, vous circumvnt il, par l'utilisation de joindre, lorsque vous exécutez

SELECT t1.*,t2.* FROM Table1 t1 INNER JOIN Table1 t2 ON t1.`country` = t2.`country`

Vous voyez tat pour les pays en ligne t1-vous trouver une ligne de t2. Donc, pour siziliano en t1 vous obtenez funghi et siziliano en t2.

Le reste est de la réduction de tous les t2 lignes, à celles dont vous avez besoin

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<>violon ici

2021-11-24 08:56:30

Puis-je demander pour un peu plus d'explication? J'ai essayé la lecture de ces manuels cependant, je n'arrive pas à saisir.
czarniecki

j'ai ajouté quelques explications, en général montrent que toutes les colonnes et donc, vous voyez betrer ce qu'est une jointure fait ou la clause where
nbk

Et si je voulais énumérer toutes les pizzas, qui ont des prix plus élevés que l'un spécifique? SÉLECTIONNEZ t2.la pizza DU menu t1 INNER JOIN menu t2 on t1.prix = t2.prix OÙ t1.prix > 'americano'; j'ai essayé quelque chose comme ça, mais évidemment on ne peut pas comparer chaîne avec entier
czarniecki

c'est la même chose avec un subquerz zou devez sélectionner le prix de l'americano, avec zou le besoin de rejoindre une autre table que les filtres everzthing que est plus petit, lui donner un trz ou rendre une autre question, vous avez maintenant un violon lien que vous pouvez ajouter
nbk

Dans d'autres langues

Cette page est dans d'autres langues

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