farklı koşullar ile aynı tabloların ikisini katılmak için;SQLITE sorgu aşağıdaki gibi detaylara sahip <code>messages</code> denilen bu SQL tablosu var
id, sender, recipient, message, timestamp
"1","10204456572654160","10208819391147662","Hi.. : What are you up to?","1459541723279"
"2","10204456572654160","10208819391147662","Got my test message?","1459541749818"
"3","10208819391147662","10204456572654160","This is my message","1459611679108"
"4","10208819391147662","10204456572654160","And another message","1459611735455"
"5","10204456572654160","10208819391147662","And I reply like this","1459611758570"
"6","10153775515332771","10208819391147662","It's me.. Syco !!","1459611900348"
"7","10153775515332771","10208819391147662","You there?","1459611900350"
"8","10208819391147662","10153775515332771","Yes.. What's upp..","1459611900380"
"9","10204464403169266","10208819391147662","How're you doin?","1459612000666"
Şimdi, benim işlevine e.g. 10208819391147662
bir değer geçirmesi için ve sütunları aşağıdaki gibi bir sonuç göstermek istiyorum; DEĞİLDİR sender/recipient
ait
- Benzersiz değer
10208819391147662
- son
message
olansender/recipient
arasındaki DEĞİL10208819391147662
VE10208819391147662
olduğunusender/recipient
. - 2. (mesaj) arasında
timestamp
. aşağıdakileri elde etmek amacıyla,
, bu SQL sahiptir;
SELECT s1.*, max(c2.message), max(c2.timestamp)
FROM (
SELECT sender as username
FROM messages
WHERE sender <> '10208819391147662'
UNION
SELECT recipient as username
FROM messages
WHERE recipient <> '10208819391147662'
) s1
LEFT JOIN messages c2 ON (s1.username = c2.sender OR s1.username = c2.recipient)
GROUP BY s1.username
I başarıyla
UNION
kullanarak
1st column
ekstre var. Ama
MAX
ve
Group by
maddesini kullanarak 2 ve 3 üzerinde hiçbir lucks ile.
Benim nihai beklenen sonucu olmalıdır;
username, message, timestamp
"10204456572654160","And I reply like this","1459611758570"
"10153775515332771","Yes.. What's upp..","1459611900380"
"10204464403169266","How're you doin?","1459612000666"
Ve işte benim şu an SQLFiddle. Herhangi bir öneri takdir edilir.
Sen soruyu başka sözcüklerle gerekir. Bazılarının okunması çok zor, yani '10208819391147662 olan gönderici/alıcı arasındaki son mesaj ve 10208819391147662 olan gönderici/alıcı. 'Tek bir paragraf yazabilir, verilerin ne olduğunu ve ne yapmaya çalıştığınızı açıklayabilir misiniz? gereklilik kısmi bir uygulama değildir. – Harry
Lütfen etiketleri doğru şekilde kullanın. mysql <> sql-server <> sqlite – FLICKER
Ne için MAX'a ihtiyacınız var? –