2013-07-04 29 views
-1

我想與SQL reqeustMYSQL內部聯接,GROUP BY和ORDER使用

這messages.tbl

id : 1 
sender : ali 
responder : aishe 
message : hi,how are you aishe 
xid : md5($sender.$responder)--for using group by xid 
id : 1 
sender : ali 
responder : aishe 
message : answer me aishe plase 
xid : md5($sender.$responder)--for using group by xid 

這members.tbl合併來自MySQL數據庫DATAS

id : 1 
nickname : ali 
img : ali.jpg 

第二個成員記錄.tbl

id:2 
nickname : aishe 
img : aishe.jpg 

我想要列表組和xid和消息最新顯示

我的英語很差對不起。 請幫我傢伙

所以阿里發送50條消息發佈 和約翰發佈20條信息 和邁克·5消息

我想writen到 頁面,如: 阿里的最新的消息和阿里的圖片 約翰的最新的消息,他的照片 麥克的最新的消息和他的照片

爲了通過最新的消息和GROUP BY XID(如:44asd32asd12)

瞭解嗎?

+0

無需你的英語道歉,但什麼可以幫助是,如果你提供的示例數據(以表格形式),然後張貼什麼樣的結果,你會從你的數據。例如喜歡。 – OCDan

+0

你一直保持什麼樣的關係的B/W表 –

+0

阿里說:怎麼areu 約翰:「祝你好運」 麥克:「看你的」 喜歡這個最新的消息第一 –

回答

0

如果我理解正確,你想顯示每個用戶發送的消息,或者你想顯示每個用戶發送的最後一條消息。

如果你想顯示每個用戶的信息,您可以使用此查詢:

select 
    members.*, -- Put the fields you want from table members (e.g. members.id, ...) 
    messages.* -- Put the fields you want from table messages (e.g. messages.message, ...) 
from 
    members 
    inner join messages on members.nickname = messages.sender; 

如果你希望每次用戶發送的最後一條消息,則可以使用子查詢過濾數據:

select 
    members.*, 
    messages.* 
from 
    members 
    inner join messages on members.nickname = messages.sender 
    inner join (
     select sender, max(id) as maxId 
     from messages 
     group by sender 
    ) as a on messages.id = a.maxId; 

希望這有助於

+0

感謝出現在你interting,但我採取這一錯誤「未知列'暱稱'在'字段列表'「 –

+0

@CumhurYrdkl對不起,這...我糾正了子查詢 – Barranka

+0

@baraka你可以加我的Skype嗎?我需要幫助 –