J'ai une table qui ressemble à ceci:
t1 p> Je souhaite sélectionner le cod code> CID code> avec la plus grande valeur pour accéder à la raison. Je peux sélectionner le plus grand Cependant, lorsque j'essaie d'introduire la colonne code> code> comme: P> CID code> comme: p> select t2.*
from t2
left join (select to pick `reason` with greatest `cid`)
on t2.pid = t1.pid
3 Réponses :
Vous pouvez utiliser la clause code> code>:
Cela ne fonctionne pas pour moi, car la solution doit être évolutive. Je ne peux pas avoir de statique comme ayant = 2. Je veux vérifier le CID maximum pour chaque PID. Cela a-t-il du sens? Merci en avance.
La requête serait
SELECT reason,
trim('C' from cid)
FROM t1
ORDER BY trim('C' from cid) DESC
LIMIT 1;
Il ressemble à Utiliser la limite 1 pour obtenir la dernière ligne: P> raison code> n'est pas utilisé du tout dans votre requête finale, mais peut-être que c'est juste une faute de frappe? select t2.*, reason
from t2
left join (select pid, reason FROM T1 order by cid DESC limit 1) as sub on sub.pid = t2.pid;
Notez que
max (couper ('c' de la CID)) code> ne fait probablement pas ce que vous pensez. Il compare les nombres en tant que chaînes, donc si vous avez'c2' code> et'c10' code> Votre expression retournerait'2' code>@a_horse_with_no_name Merci pour la clarification qui a aidé beaucoup.