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.