J'ai deux tables:
Tableau A:
SELECT * FROM B INNER JOIN A ON A.key=B.key where A.price > B.min AND A.price < B.max;
3 Réponses :
essayer p>
Sélectionnez * à partir de B Gauche Rejoignez A sur B.Key = A.Key où A.Price> B.Min et A.Price
blockQuote> rejoindre gauche fort> retournera les valeurs dans la table de gauche. Ici c'est b p>
Il est montré ici https://www.w3schools.com/sql/sql_ref_join.asp < / a> p>
OK j'ai trouvé le problème. de
Le type fort> de type de colonne était Varchar. Je l'ai changé pour flotter et maintenant la requête renvoie le vrai résultat. P>
Vous devriez probablement utiliser le décimal / numérique Type de données plutôt que de flotter, vous éviterez Problèmes avec imprécis représentations de nombres.
Utilisez cette requête MySQL pour récupérer les résultats et assurez-vous de définir la colonne de prix sur INT ou Float.
p>
SELECT
table1.id,table1.key,table1.price,
table2.min,table2.max
FROM
table1
INNER JOIN
table2 ON table1.key = table2.key
AND (table1.price > table2.min
AND table1.price < table2.max);Quelle est la différence entre votre requête et la mienne? Sont-ils égaux?
Les deux utilisent presque la même période dans l'exécution de 0,0006 secondes.
Pourriez-vous fournir l'exemple qui a mal tourné?
Souhaitez-vous montrer les données d'échantillon?