sorgu üzerine fazlaca uğraştım çıldırttı beni bıraktım. 
Düşündüğüm mantık şu  id!=3 or gonderen_id=3 group by id,gonderen_id  
sorgu sonucunda çıkan 
id  g_id  date
3    4     20:26
4    3     20:27
bu 2 row için max dateyi nasıl bulucam ?
kısaca tabloyu örnek veriyim.
iç içe select ile olmuyor. karşu kullanıcıya gelen mesajları buldum ama user 3 için attığı mesajlar olmuyor neyse fazla uzatmıyım dinlenik kafayla belki göremediğimi görürsünüz.
id  g_id   mesaj                      date  
3	4	sa	                20:00
4	3	as	                20:15
3      5      naberr               20:20
3	4	naber	        20:21
4	3	iyi sen ?      	20:22
3	2	naber 	        20:23
2	3	iyim nasılsın	20:24
2	3	napıyorsun	20:25
3	4	sa	                20:26
4	3	naber	        20:27
Max yapabildiğim sorgu: 
SELECT *,MAX(date) AS mdate3 FROM user_mesajlar WHERE id=3 OR gonderen_id=3 GROUP BY id,gonderen_id ORDER BY `mdate3` DESC;
id  g_id   mesaj                   date  
2	3	iyim nasılsın	20:24
3	2	naber 	        20:23
3	4	sa	                20:26
3      5      naberr               20:20
4	3	naber	        20:27
örnek user 3'e göre  sorgu çıktısı:
id   g_id       mesaj             date
4	3	naber	        20:27
2	3	napıyorsun	20:25
3      5      naberr               20:20
olmalı.
                         
  

 
                    
 
                    