je dois avoir une valeur SQL qui trouve des valeurs de la table B à l'aide (randomiser) sur le tableau A de manière comparative. Les valeurs du tableau A ont été produites de manière aléatoire. Les valeurs de la table B ont été ordonnées d'une manière de fonction de distribution cumulative. Ce qui est nécessaire, c'est que SQL obtienne la première ligne de la table B qui satisfait aux critères.requête SQL dans MySQL contenant comparaison mathématique
Table A: +----+-------+ | ID | value | +----+-------+ | 1 | 0.1234| | 2 | 0.8923| | 3 | 0.5221| +----+-------+ Table B: +----+-------+------+ | ID | value | name | +----+-------+------+ | 1 | 0.2000| Alpha| | 2 | 0.5000| Beta | | 3 | 0.7500| Gamma| | 4 | 1.0000| Delta| +----+-------+------+ Result should be: +----+-------+------+ | ID | value | name | +----+-------+------+ | 1 | 0.1234| Alpha| | 2 | 0.8923| Delta| | 3 | 0.5221| Gamma| +----+-------+------+
La valeur 0.1234 est inférieure à toutes les valeurs de B, mais Alpha a la plus petite valeur.
valeur 0,8923 est inférieure à 1.000 -> Delta.
valeur 0,5221 est plus petite que les deux 0.7500 et 1.000, mais 0.7500 est le plus petit -> Gamma.
Cette requête ne fonctionne que si le tableau A a une valeur:
select value, name from B where (select value from A) < value;
Toute idée comment obtenir ce travail avec une table complète A?
utilisation limite dans une base MySQL .. – amdixon
@amdixon Merci, j'ai oublié TOP est pas pris en charge MySQL – dotnetom
Cela fonctionne comme un charme. Je vous remercie! – Parallax