LIMIT sur un "faux GROUP BY"

WRInaute passionné
Bonjour,

Question récurrente visiblement...
Est-il possible de faire un LIMIT sur un "faux GROUP BY" ?

Exemple d'un résultat de requête sur une jointure.
Code:
SELECT user_id, tas_id
FROM user 
INNER JOIN task
ON user_id = use_id
WHERE...

Code:
[USER] [TASK]
  1        1
  1        2
  1        3
  2        1
  2        2
  3        1
  4        1
  4        2
L'objectif est de récupérer seulement les résultats concernant les deux premiers utilisateurs.


Code:
[USER] [TASK]
  1        1
  1        2
  1        3
  2        1
  2        2

Il faut imaginer qu'il existe 50 conditions WHERE au niveau de TASK dans la requête.

Une solution, une idée ? Merci

Dorian
 
WRInaute passionné
Les deux premiers utilisateurs du jeu de résultats (pas par rapport aux id).

Je crains qu'il n'y ait pas de solution sous MySQL. On est obligé de faire une sous requête.

Code:
SELECT user_id, tas_id
FROM user 
INNER JOIN task
ON user_id = use_id
WHERE...
 
AND user_id ON 
(
SELECT user_id
FROM user
INNER JOIN task
ON user_id = use_id
WHERE...
GROUP BY user_id
LIMIT 2
)
 
WRInaute passionné
J'ai toujours l'impression que tu SELECT les mêmes trucs alors je suis pas du tout sûr de ce que tu veux.
Dans ton AND user_id ON (SELECT
GROUP BY user_id LIMIT 2
Je comprends pas pourquoi ça passe pas de le mettre en direct (après c'est que moi).
Peut-être que la commande DISTINCT ferait une différence, mais toujours autant perdu.
Après mettre une sous requête dans un while peut être plus performant.
 
Discussions similaires
Haut