2010-03-13 7 views
0

C'est ce que je faisMySQL résultat de référence de sous-requête

update t1 set x=a,y=b where a and b are obtained from (select query here) 
  1. Je sais la requête de sélection
  2. La requête de sélection renvoie plusieurs résultats qui sont les mêmes
  3. Lorsque j'utilise groupe par ou l'exécution distincte de requête ralentit considérablement
  4. a et b sont des références avant ainsi mysql signale une erreur
  5. Je veux placer une égale à la valeur obtenue dans la première rangée et b égale à la valeur obtenue dans la première rangée pour les colonnes respectives, pour éviter le regroupement par. Je ne sais pas comment faire référence au premier résultat de la requête select.

Comment puis-je réaliser tout cela?

+0

Vous devez montrez-nous un peu plus de détective que cela. Montrez-nous la requête que vous avez actuellement ... –

Répondre

1

LIMIT spécifie le nombre de lignes à retourner dès le début du jeu de résultats:

SELECT * FROM t2 LIMIT 1; # Retrieve 1er rang

LIMIT dans votre cas est appliqué dans la sous-requête dans votre clause from.

Ces Linsk peuvent vous aider avec update qui utilise un sous-requête:

Update with Subquery

Subqueries in MySQL, Part 1

0

vous cherchez peut-être quelque chose comme ...

update T1, (select Sub1.a, Sub1.b from YourSubQueryTable Sub1 where ...) SubResult 
    set T1.a = SubResult.a, 
     T1.b = SubResult.b 
    where 
     Some T1.Criteria To be applied 
Questions connexes